BookLeme ni nini
BookLeme, yenye jina la Kichina “读了么”, ni zana inayobadilisha vitabu kuwa Agent Skill. Lengo lake si kutengeneza muhtasari wa kawaida, bali kuchota mbinu za kazi zilizomo kwenye kitabu, kama vile mpangilio wa maswali, masharti ya uamuzi, kanuni za ushahidi, hali za mchakato na mipaka ya kutotumika, kisha kuzipanga kuwa bidhaa zinazoweza kusakinishwa, kuitwa na kuthibitishwa.
Mradi hugawanya uchakataji wa vitabu katika wakati wa uundaji na wakati wa utekelezaji: wakati wa uundaji husoma na kuchakata kitabu cha awali, ilhali wakati wa utekelezaji hupakia tu vipande vya maarifa vilivyoundwa inapohitajika. Hivyo, kila Skill inapotumiwa si lazima kusoma upya kitabu kizima.
Angalizo: “Kuchota muundo badala ya muhtasari” ni chaguo la usanifu wa kihandisi linalotumiwa na mradi, lakini README inalitaja wazi kama dhana ambayo bado haijathibitishwa na mradi, wala si hitimisho lililothibitishwa.
BookLeme huzalisha nini
BookLeme hutoa injini mbili za uundaji. Zinashiriki uwakilishi wa kati wa hatua za uchotaji na uthibitishaji, na hutenganishwa tu katika hatua ya uwasilishaji. Kwa hiyo, unapochagua kuzalisha aina zote mbili za bidhaa, si lazima kuchakata kitabu mara mbili.
Kifurushi cha maarifa knowledge_pack
Kifurushi cha maarifa ni hifadhidata ya maarifa yenye muundo inayoweza kutafutwa. Hujumuisha hasa jedwali la uelekezaji la Topic Index, vipande vya mifumo vinavyopakiwa inapohitajika, mwongozo wa haraka wa maamuzi na orodha ya marejeo. Kinafaa kwa maswali kama “Mfumo fulani wa kitabu unatumikaje?”.
Skill ya tabia behavior_skill
Skill ya tabia hutumika kuendesha mchakato kamili, na inaweza kujumuisha ufafanuzi wa majukumu, masharti yasiyoweza kuvunjwa, mashine ya hali, mkataba wa matokeo wenye jina, mifumo hasi na vizuizi vya kihisia. Inafaa kutekeleza kazi za hatua nyingi kama mazungumzo ya ukocha, badala ya kutafuta maarifa pekee.
Sifa kuu
- Uelekezaji otomatiki wa injini mbili: Huchagua kifurushi cha maarifa au Skill ya tabia kulingana na sifa 12 za aina ya maandishi zinazoweza kubainishwa, na pia huruhusu kuchagua injini mwenyewe.
- Programu-jalizi za aina zinazoweza kubadilishwa: Unapoongeza aina mpya, unaweza kuongeza faili moja ya Python katika saraka ya programu-jalizi za mtumiaji bila kurekebisha mchakato mkuu.
- Uthibitishaji wa uaminifu wa neno kwa neno: Nukuu lazima iwe mfuatano sahihi wa maandishi ya awali na ichunguzwe kwa vipimo kadhaa vinavyoweza kupimwa.
- Kizuizi madhubuti cha hakimiliki: Ukaguzi wa hakimiliki unaoweza kubainishwa hufanywa kabla ya kusakinisha na kuchapisha; Skill zinazozalishwa kutoka vitabu vya wahusika wengine huwa za faragha kwa chaguo-msingi.
- Hakuna utegemezi wa wahusika wengine wakati wa utekelezaji: Utekelezaji mkuu hutumia maktaba ya kawaida ya Python pekee.
- Idempotensi ya kiwango cha hatua: Mchakato hutumia SHA-256 kuendelea na kazi; ukifuta bidhaa za hatua fulani, unahitaji kuendesha tena hatua husika pekee.
Usakinishaji na maandalizi ya mazingira
BookLeme inahitaji Python 3.9 au toleo la juu zaidi. Baada ya kuiga hazina, unaweza kuiendesha moja kwa moja kupitia kiingilio cha moduli ya Python bila kusakinisha kwanza utegemezi wa wakati wa utekelezaji wa wahusika wengine.
git clone https://github.com/bookleme/bookleme.git
cd bookleme
python3 -m bookleme --version
Ikiwa amri inaweza kutoa maelezo ya toleo, inamaanisha mazingira ya msingi yako tayari kutumika. Hazina inatangaza usaidizi wa miundo ya ingizo kama PDF, EPUB, DOCX, Markdown, HTML, RTF na MOBI; hapa chini tunatumia muswada wa kitabu wa Markdown uliotengenezwa na mradi kuonyesha mchakato kamili.
Mkusanyiko wa kwanza: kutoka muswada wa kitabu hadi Skill
Endesha amri ndogo ya run, tumia --input kubainisha muswada na --title kuweka kichwa:
python3 -m bookleme run \
--input evals/cases/synthetic/coach_book.md \
--title "我的第一本书"
Kwa chaguo-msingi, BookLeme huchanganua sifa za aina ya muswada na kuchagua kiotomatiki injini inayofaa ya uundaji. Mchakato wa uundaji hupitia hatua za kusajili ingizo, kuchota maandishi, kugawa maandishi ya Kichina, kuelekeza aina, kuchota uwezo wa atomiki, kuthibitisha uaminifu, kuwasilisha, kufanya uthibitishaji wa jumla, kusakinisha na kufanya tathmini ya awali.
Mapendekezo: Kwa jaribio la kwanza, tumia kwanza muswada wa majaribio uliotengenezwa unaotolewa na hazina. Kabla ya kuchakata vitabu vya wahusika wengine, thibitisha kuwa una haki zinazofaa za matumizi na uelewe vizuizi vya usambazaji wa bidhaa zinazozalishwa.
Chagua injini ya uundaji
Tumia --engine kudhibiti aina ya matokeo:
python3 -m bookleme run \
--input evals/cases/synthetic/coach_book.md \
--title "教练对话示例" \
--engine behavior_skill
Thamani zinazopatikana ni:
auto: Ruhusu kielekezaji kuchagua kiotomatiki.knowledge_pack: Zalisha kifurushi cha maarifa chenye muundo pekee.behavior_skill: Zalisha Skill ya tabia inayoweza kuendeshwa pekee.both: Zalisha aina zote mbili za bidhaa kwa wakati mmoja.
Ikiwa ungependa kuzima uelekezaji na kutoa matokeo kutoka kwa injini zote mbili, unaweza kutumia --no-router:
python3 -m bookleme run \
--input evals/cases/synthetic/coach_book.md \
--title "双引擎示例" \
--no-router
Bainisha programu-jalizi ya aina
Programu-jalizi ya aina huamua mashine ya hali ya bidhaa, mkataba wa matokeo, masharti yasiyoweza kuvunjwa na namna ya kujieleza. Programu-jalizi zilizotekelezwa kwa sasa ni:
coach_dialogue: Kwa ukocha au mazungumzo binafsi; inasaidia mashine ya hali ya swali na jibu, vizuizi vya kihisia, kusitisha na kuendelea na mazungumzo.knowledge_reference: Kwa marejeo ya haraka ya mifumo; huelekeza maudhui kupitia Topic Index na lazima ikatae kujibu inapokutana na taarifa ambayo kitabu hakitoi.
professional_analysis na decision_checklist bado ni maudhui ya ramani ya baadaye ya M4; kwa sasa hayapaswi kuchukuliwa kuwa vipengele vilivyokamilika.
Unaweza kulazimisha kuchagua programu-jalizi iliyotekelezwa kupitia --genre:
python3 -m bookleme run \
--input evals/cases/synthetic/coach_book.md \
--title "人生设计对话" \
--engine behavior_skill \
--genre coach_dialogue
Thibitisha bidhaa zinazozalishwa
Baada ya uundaji kukamilika, tumia amri ya uthibitishaji inayotolewa na mradi kukagua bidhaa. README hutumia examples/coach kama mfano:
python3 -m bookleme validate examples/coach
Hatua hii huendesha kithibitishaji rasmi, lint ya ndani na kizuizi madhubuti cha hakimiliki. BookLeme hugawanya uaminifu katika vipimo vinavyoweza kukaguliwa, ikiwa ni pamoja na kiwango cha uchanganuzi wa nukuu, kiwango cha ukiukaji wa neno kwa neno, kiwango cha kukataa mifano hasi, kiwango cha kupatikana kwa maneno ya kuchochea, kiwango cha kufuata kwa bidhaa, kikomo cha mwingiliano wa shingle na kiwango cha ufunikaji.
Mradi pia huhifadhi kipimo cha kiheuristiki cha groundedness, lakini README inaeleza wazi kuwa LLM judge bado haijaunganishwa. Kwa hiyo, thamani hii kwa sasa huripotiwa tu na haitumiki kama kizuizi madhubuti.
Endesha majaribio ya urejeshaji
Baada ya kurekebisha msimbo mkuu, programu-jalizi au violezo, endesha majaribio kamili:
python3 -m unittest discover -s tests -v
Unapotengeneza programu-jalizi, unaweza pia kukagua schema ya hali na kuthibitisha faili ya programu-jalizi kando:
python3 -m bookleme schema --state
python3 -m bookleme plugin validate bookleme/plugins/builtin/coach_dialogue.py
Sakinisha bidhaa na tangaza haki za matumizi
Kwa chaguo-msingi, amri ya uundaji haiandiki bidhaa kwenye chanzo halisi cha Skill. Unapohitaji kusakinisha, ongeza wazi --install. Wakati huo huo, unaweza kutumia --user-rights kutangaza hali ya haki za maudhui ya ingizo:
python3 -m bookleme run \
--input path/to/book.md \
--title "内部知识 Skill" \
--engine both \
--install \
--user-rights owned
--user-rights inasaidia thamani zifuatazo:
owned: Mtumiaji anamiliki haki za maudhui.licensed: Ruhusa husika imepatikana.public_domain: Maudhui yako katika miliki ya umma.unknown: Hali ya haki haijulikani.
Tangazo la haki haliwezi kuchukua nafasi ya uamuzi wa kisheria. Leseni ya MIT inahusu tu msimbo wa kibadilishaji cha BookLeme na ufafanuzi wa Skill; haihusu kitabu cha ingizo wala kumpa mtumiaji moja kwa moja haki ya kusambaza bidhaa zinazotokana nacho.
Elewa kizuizi madhubuti cha hakimiliki
BookLeme huweka matokeo yake kama madokezo yaliyopangwa yanayotokana na maudhui, wala si urudiaji wa maandishi ya awali. Mradi umeweka vizuizi sita madhubuti vya hakimiliki; kushindwa kwa kimoja tu kutazuia usakinishaji au uchapishaji:
- Nukuu moja isiwe na zaidi ya herufi 150 na iweze kufuatiliwa neno kwa neno hadi kwenye maandishi ya awali ya ingizo.
- Uwiano wa jumla wa nukuu usizidi 0.03.
- Maudhui yanayonakiliwa mfululizo yasizidi herufi 150.
- Mwingiliano wa shingle wa herufi 13 usizidi 0.10.
- Bidhaa isiwe na maandishi kamili au vipande vya awali.
contains_original_textlazima iwefalse.
Skill zinazozalishwa kutoka vitabu vya wahusika wengine huwa za faragha kwa chaguo-msingi na hazipaswi kusambazwa. Ikiwa kwa kweli una haki ya kuzisambaza hadharani, bado unahitaji kutoa wazi vigezo viwili vya uthibitisho:
--public --confirm-public PUBLISH
Vigezo vya umma ni kizuizi cha uthibitisho wa kihandisi, si sawa na ruhusa ya hakimiliki. Mtumiaji bado anapaswa kuthibitisha mwenyewe wigo wa leseni, sheria zinazotumika na hali ya haki za nyenzo za ingizo.
Mbinu ya hali ya juu: tumia idempotensi ya kiwango cha hatua kuendelea na kazi
Mchakato wa BookLeme wa S0 hadi S9 umeundwa kwa idempotensi ya kiwango cha hatua na hutumia SHA-256 kutambua matokeo yaliyopo. Uchakataji wa hati ndefu ukikatika bila kutarajiwa, unaweza kuhifadhi bidhaa za hatua zilizokamilika; ukifuta matokeo ya hatua moja tu, zana itaendesha tena hatua hiyo bila kuchakata upya kitabu kizima.
Muundo huu pia unafaa kwa kutatua hitilafu za programu-jalizi au mantiki ya uwasilishaji. Kwa kuwa injini zote mbili hushiriki matokeo ya uchotaji, ugawaji, uchotaji wa uwezo na uthibitishaji wa uaminifu wa hatua za awali, kurekebisha tabaka la uwasilishaji hakuhitaji kusoma tena muswada wa kitabu.
Mbinu ya hali ya juu: tengeneza programu-jalizi maalum ya aina
Programu-jalizi maalum inapaswa kuwekwa katika bookleme/plugins/user/<genre_id>.py. Mradi unahitaji programu-jalizi zitangaze sehemu muhimu; sehemu zinazohitajika zikikosekana, programu-jalizi itakataliwa kupakiwa.
state_machine: Hufafanua hali na mabadiliko ya mchakato.output_contract: Hufafanua matokeo ambayo bidhaa lazima itoe.hard_constraints: Hufafanua kanuni zisizoweza kukiukwa.anti_patterns: Huorodhesha tabia zenye makosa zinazopaswa kuepukwa.voice_calibration: Hufafanua toni, namna ya kumwita mtu, maneno yaliyokatazwa na mhusika wa hitimisho.copyright_profile: Hutangaza usanidi unaohusiana na udhibiti wa hakimiliki.trigger_words: Hutoa maneno 3 hadi 5 ya kichocheo kwa Kichina.eval_prompts: Hutoa vidokezo vya tathmini, kimojawapo kikiwa lazima kiwe mfano hasi.
Kabla ya kuandika programu-jalizi, inashauriwa kusoma vipimo vya programu-jalizi; baada ya kumaliza, tumia plugin validate kwa uthibitishaji. Usitumie programu-jalizi kukwepa uthibitishaji wa uaminifu, kizuizi madhubuti cha hakimiliki au sharti la kukataa mifano hasi.
Mchakato wa S0–S9 unavyofanya kazi
- S0–S2: Sajili ingizo, fanya uchimbaji wa kubainisha, rekebisha ulinganifu na ugawanye maandishi ya Kichina kuwa sehemu, bila kutegemea alama maalum za Kiingereza za Chapter.
- S3: Elekeza aina ya kazi kulingana na vipengele 12; kunapokuwa na utata, inaweza kuchagua injini mbili kiotomatiki.
- S4: Changanua uwezo wa msingi kwa kutumia kichanganuzi cha kubainisha na, kwa hiari, kichanganuzi cha LLM kinachooana na OpenAI; usanidi unapokosekana, mfumo hurudi kiotomatiki kwenye njia mbadala.
- S5: Kagua nukuu neno kwa neno, tunza daftari la madai na hesabu vipimo vya uaminifu.
- S6: Tumia programu-jalizi kutoa kifurushi cha maarifa au Skill ya kitabia; hapa ndipo injini mbili hugawanyika kwa dhati.
- S7–S9: Tekeleza ukaguzi wa usanisi, usakinishaji usio na athari za kurudia na tathmini za moshi.
S3 na S4 zote hutumia matokeo ya S2 kama ingizo na zinaweza kufanya kazi kwa sambamba. Injini hizo mbili hushiriki uwakilishi wa kati wa S1, S2, S4 na S5, hivyo kuepuka kusoma na kuchanganua tena data.
Mapendekezo ya vitendo
- Anza kwa kutumia muswada wa kitabu wa majaribio unaokuja na mradi ili kuzoea amri, kisha shughulikia vitabu halisi.
- Usipokuwa na uhakika wa aina ya matokeo, tumia
--engine auto; ukihitaji kulinganisha matokeo yote mawili kwa wakati mmoja, tumiabothau--no-router. - Kila unapobadilisha programu-jalizi au kiolezo, endesha ukaguzi wa matokeo na majaribio ya vitengo.
- Hifadhi uwezo wa kukataa kwa taarifa ambazo hazijatolewa kwenye kitabu; usitumie maarifa ya jumla ya modeli kujaza mapengo ya chanzo.
- Usiwasilishe maandishi asilia ya vitabu, majalada au nakala zilizochanganuliwa kwenye hazina, wala usichapishe moja kwa moja matokeo ya vitabu vya wahusika wengine ambayo kwa chaguo-msingi ni ya faragha.
- Soma nyaraka za uaminifu na nyaraka za hakimiliki ili kuelewa vipimo na mipaka ya uchapishaji.
Mipaka ya sasa
BookLeme kwa sasa iko katika hatua ya M0–M3. coach_dialogue na knowledge_reference zimetekelezwa, lakini programu-jalizi za uchanganuzi wa kitaalamu na orodha za maamuzi bado ziko kwenye ramani ya baadaye. LLM judge bado hajaunganishwa, hivyo baadhi ya vipimo vinavyohusiana bado vina thamani ya null. Wakati wa matumizi, tofautisha uwezo ambao tayari umetekelezwa, umejaribiwa kwa vitendo na ambao bado unasubiri uthibitishaji.
Hitimisho
BookLeme hubadilisha “kusoma kitabu” kuwa mchakato wa uhandisi unaoweza kujaribiwa: kwanza huchanganua na kugawa sehemu, kisha huchambua uwezo na kukagua uaminifu, na hatimaye hutoa kifurushi cha maarifa au Skill ya kitabia. Baada ya kukamilisha uundaji wa kwanza, inapendekezwa kujumuisha ukaguzi, majaribio, matamko ya haki na ukaguzi wa hakimiliki katika mchakato wa kudumu, ili kutumia tena mbinu za kitabu huku ukihifadhi mipaka ya chanzo na uwezo wa uthibitishaji.
