دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

دليل BookLeme: حوّل كتاب لمهارة Agent قابلة للتثبيت والتحقق

كيشرح هاد الدليل كيفاش تثبّت وتستعمل BookLeme باش تحوّل الأطر والمساطر وطرق الخدمة اللي فالكُتب لحزمة معرفة منظمة ولا Skill سلوكية قابلة للتشغيل، مع توجيه حسب النوع، والتحقق من المخرجات، واستكمال الخدمة من نقطة التوقف، ومراجعة حقوق النشر.

دليل BookLeme: حوّل كتاب لمهارة Agent قابلة للتثبيت والتحقق

شنو هو BookLeme

BookLeme، والاسم ديالو بالصينية هو «قريتي ولا لا»، هو سلسلة ديال الأدوات كتترجم الكتب لـ Agent Skill. ما كيركزش على إنشاء ملخصات عادية، ولكن على استخراج طرق الخدمة اللي فالكتاب، بحال ترتيب الأسئلة، شروط الحكم، قواعد الأدلة، حالات المساطر والحدود اللي ما كينطبقش فيها، ومن بعد كينظمها فمنتوجات قابلة للتثبيت والاستدعاء والتحقق.

المشروع كيفرق معالجة الكتب بين وقت الترجمة ووقت التشغيل: فالترجمة كيقرا وكيعالج الكتاب الأصلي، وفوقت التشغيل كيشحن غير أجزاء المعرفة المولدة عند الحاجة. بهاد الطريقة ما كيبقاش خاص كل استدعاء للـ Skill يعاود يقرا الكتاب كامل.

ملاحظة: «استخراج البنية ماشي الملخص» هو اختيار هندسي معتمد فالمشروع، ولكن README كيوضح باللي هادي فرضية مازال المشروع ما تحققش منها، وماشي نتيجة مؤكدة.

شنو كيولد BookLeme

BookLeme كيوفر جوج ديال محركات التوليد. بجوجهم كيشتركو فتمثيل وسيط ديال مراحل الاستخراج والتحقق، وكيختلفو غير فمرحلة العرض، وبهذا إلا اخترتي تولد النوعين ديال المنتوجات ما كيبقاش خاصك تعالج الكتاب جوج مرات.

حزمة المعرفة knowledge_pack

حزمة المعرفة هي قاعدة معرفة منظمة وقابلة للمراجعة، وكتشمل بالأساس جدول التوجيه Topic Index، وأجزاء ديال الأطر كتتشحن عند الحاجة، وملخص سريع للقرارات، ولائحة المصادر. كتصلح باش تجاوب على أسئلة من نوع «كيفاش نستعملو إطار معين من الكتاب؟».

السلوك Skill behavior_skill

السلوك Skill مخصص لتشغيل مسطرة كاملة، وقد يشمل تعريف الأدوار، والقيود الصارمة، وآلة الحالات، وعقود المخرجات المسماة، والأنماط المضادة، وحواجز المشاعر. كيناسب تنفيذ مهام متعددة المراحل بحال حوارات التدريب، وماشي غير البحث فالمعرفة.

الخصائص الأساسية

  • توجيه أوتوماتيكي بجوج المحركات: كيختار حزمة المعرفة ولا السلوك Skill اعتماداً على 12 خاصية محددة ديال النوع، وتقدر حتى تختار المحرك يدوياً.
  • إضافات أنواع قابلة للتركيب: ملي كتزاد شي نوع، تقدر تزيد ملف Python فدليل إضافات المستخدم بلا ما تبدل مسار المعالجة الأساسي.
  • مراجعة الوفاء الحرفي: خاص الاقتباسات تكون سلاسل فرعية دقيقة من النص الأصلي، وكتدوز من مؤشرات قابلة للقياس متعددة.
  • حاجز صارم ديال حقوق النشر: كيتدار فحص حتمي لحقوق النشر قبل التثبيت والنشر، والـ Skill المولد من كتب ديال الغير كيبقى خاص بشكل افتراضي.
  • ما كايناش تبعيات خارجية فالتشغيل: التنفيذ الأساسي كيستعمل غير المكتبة القياسية ديال Python.
  • إعادة تشغيل على مستوى المراحل: المسار كيستعمل SHA-256 باش يدعم إعادة التشغيل؛ إلا تحيد ناتج مرحلة معينة، خاص غير تعاود تشغل داك المرحلة.

التثبيت وتحضير البيئة

BookLeme كيتطلب Python 3.9 ولا إصدار أحدث. من بعد ما تنسخ المستودع، تقدر تشغلو مباشرة عبر مدخل وحدة Python، بلا ما تحتاج تثبت تبعيات تشغيل خارجية من الأول.

git clone https://github.com/bookleme/bookleme.git
cd bookleme
python3 -m bookleme --version

إلا قدر الأمر يخرج معلومات الإصدار، راه البيئة الأساسية واجدة. المستودع كيصرح بدعم صيغ الإدخال PDF وEPUB وDOCX وMarkdown وHTML وRTF وMOBI وغيرها؛ لتحت غادي نستعملو مخطوط كتاب Markdown مركب جا مع المشروع باش نوريو المسار كامل.

أول ترجمة: من مخطوط الكتاب لـ Skill

شغل الأمر الفرعي run، وحدد مخطوط الكتاب عبر --input، وحدد العنوان عبر --title:

python3 -m bookleme run \
  --input evals/cases/synthetic/coach_book.md \
  --title "كتابي الأول"

بشكل افتراضي، BookLeme كيحلل خصائص النوع ديال المخطوط وكيختار أوتوماتيكياً محرك التوليد المناسب. عملية الترجمة كتدوز من تسجيل الإدخال، واستخراج النص، وتقسيم النص الصيني، وتوجيه النوع، واستخراج القدرات الذرية، والتحقق من الوفاء، والعرض، والتحقق الشامل، والتثبيت، وتقييم الاختبار السريع.

اقتراح: فالتجربة الأولى، من الأفضل تستعمل مخطوط الاختبار المركب اللي كيوفره المستودع. قبل ما تعالج كتب ديال الغير، خاصك تتأكد باللي عندك الحق المناسب فاستعمالها، وتفهم القيود ديال توزيع المنتوجات المولدة.

اختيار محرك التوليد

تقدر تتحكم فنوع الخرج باستعمال --engine:

python3 -m bookleme run \
  --input evals/cases/synthetic/coach_book.md \
  --title "مثال ديال حوار تدريبي" \
  --engine behavior_skill

القيم المتاحة هي:

  • auto: خلي الموجه يختار أوتوماتيكياً.
  • knowledge_pack: ولد غير حزمة معرفة منظمة.
  • behavior_skill: ولد غير سلوك Skill قابل للتشغيل.
  • both: ولد النوعين بجوج.

إلا بغيتي تسد التوجيه وتخلي المحركين بجوج يخرجو النتائج، استعمل --no-router:

python3 -m bookleme run \
  --input evals/cases/synthetic/coach_book.md \
  --title "مثال ديال المحركين بجوج" \
  --no-router

تحديد إضافة النوع

إضافة النوع كتحدد آلة الحالات ديال المنتوج، وعقد الخرج، والقيود الصارمة، وطريقة التعبير. الإضافات اللي مطبقة دابا هي:

  • coach_dialogue: للحوار التدريبي أو الحوار مع الذات، وكتدعم آلة حالات سؤال وجواب، وحواجز المشاعر، والمقاطعة، ومواصلة الحوار.
  • knowledge_reference: للمراجعة السريعة ديال الأطر، وكتوجه المحتوى عبر Topic Index؛ وملي ما تكونش المعلومة متوفرة فالكتاب، خاصها ترفض الجواب.

professional_analysis وdecision_checklist مازالين من محتوى خارطة الطريق اللاحقة M4، وما خاصش يتعتابرو دابا وظائف مكتملة.

تقدر تفرض اختيار إضافة مطبقة باستعمال --genre:

python3 -m bookleme run \
  --input evals/cases/synthetic/coach_book.md \
  --title "حوار تصميم الحياة" \
  --engine behavior_skill \
  --genre coach_dialogue

التحقق من المنتوجات المولدة

من بعد ما يكمل التوليد، خاصك تستعمل أمر التحقق اللي كيوفر المشروع باش تفحص المنتوج. README كيستعمل examples/coach كمثال:

python3 -m bookleme validate examples/coach

هاد الخطوة كتنفذ أداة التحقق الرسمية، وlint الخاص بالمشروع، والحاجز الصارم ديال حقوق النشر. BookLeme كيفرق الوفاء لمؤشرات قابلة للفحص، ومن بينها معدل تحليل الاقتباسات، ومعدل المخالفات الحرفية، ومعدل رفض الأمثلة السلبية، ومعدل إصابة كلمات التفعيل، ومعدل مطابقة المنتوج، والحد الأقصى لتداخل shingle، ونسبة التغطية.

المشروع باقي كيحتافظ بمؤشر groundedness الاسترشادي، ولكن README كيوضح باللي LLM judge مازال ما تدمجش، وبالتالي هاد القيمة دابا غير كتتبلغ وما كتستعملش كحاجز صارم.

تشغيل اختبارات الرجوع

من بعد أي تعديل فالكود الأساسي، أو الإضافات، أو القوالب، شغل الاختبارات كاملة:

python3 -m unittest discover -s tests -v

إلا كنت كتطور إضافة، تقدر حتى تفحص مخطط الحالات وتتحقق من ملف الإضافة بوحدو:

python3 -m bookleme schema --state
python3 -m bookleme plugin validate bookleme/plugins/builtin/coach_dialogue.py

تثبيت المنتوج والتصريح بحقوق الاستعمال

بشكل افتراضي، أمر التوليد ما كيكتبش المنتوجات فالمصدر الحقيقي ديال المهارات. ملي تحتاج التثبيت، خاصك تزيد --install بشكل صريح. وتقدر تستعمل --user-rights باش تصرح بحالة الحقوق ديال المحتوى المدخل:

python3 -m bookleme run \
  --input path/to/book.md \
  --title "Skill ديال المعرفة الداخلية" \
  --engine both \
  --install \
  --user-rights owned

--user-rights كيدعم القيم التالية:

  • owned: المستخدم مالك حقوق المحتوى.
  • licensed: تم الحصول على الترخيص المناسب.
  • public_domain: المحتوى داخل الملك العام.
  • unknown: حالة الحقوق غير معروفة.

التصريح بالحقوق ما كيعاوضش الحكم القانوني. رخصة MIT كتغطي غير كود محول BookLeme وتعريفات المهارات، وما كتغطيش الكتب المدخلة، وما كتعطيش أوتوماتيكياً الحق للمستخدم باش يوزع المنتوجات المشتقة.

فهم الحاجز الصارم ديال حقوق النشر

BookLeme كيقدم الخرج ديالو كملاحظات مشتقة ومنظمة، وماشي إعادة إنتاج للنص الأصلي. المشروع حاط ستة حواجز صارمة لحقوق النشر، وأي فشل فواحد منها كيوقف التثبيت ولا النشر:

  1. الاقتباس الواحد ما يفوتش 150 حرف، ويكون ممكن تتبعو حرفياً حتى للنص الأصلي المدخل.
  2. النسبة الإجمالية للاقتباسات ما تفوتش 0.03.
  3. المحتوى المنسوخ بشكل متواصل ما يفوتش 150 حرف.
  4. تداخل shingle من 13 حرف ما يفوتش 0.10.
  5. المنتوج ما يكونش فيه النص كامل ولا المقاطع الأصلية.
  6. contains_original_text خاصها تكون false.

الـ Skill المولد من كتب ديال الغير كيبقى خاص بشكل افتراضي وما خاصوش يتوزع. إلا كنت فعلاً مالك الحق فالتوزيع العلني، خاصك مع ذلك تقدم جوج معاملات تأكيد بشكل صريح:

--public --confirm-public PUBLISH

المعاملات العلنية هي حاجز تأكيد هندسي، وماشي ترخيص بحقوق النشر. المستخدم باقي خاصو يتأكد بوحدو من نطاق الترخيص، والقوانين اللي كتطبق، وحالة حقوق مواد الإدخال.

تقنيات متقدمة: الاستفادة من إعادة التشغيل على مستوى المراحل

مسار BookLeme من S0 حتى S9 مصمم بإعادة التشغيل على مستوى المراحل، وكيستعمل SHA-256 باش يتعرف على النتائج الموجودة. إلا توقفات معالجة وثيقة طويلة بشكل مفاجئ، تقدر تخلي نتائج المراحل اللي كملات؛ وإلا حيدتي خرج مرحلة وحدة، الأداة غادي تعاود تشغل غير المرحلة المعنية، بلا ما تضطر تعالج الكتاب كامل من جديد.

هاد التصميم مناسب حتى لتصحيح الإضافات ولا منطق العرض. وحيت المحركين بجوج كيشتركو فنتائج الاستخراج، والتقسيم، واستخراج القدرات، والتحقق من الوفاء اللي كيجيو قبل، ما كتحتاجش تعاود تقرا مخطوط الكتاب ملي كتعدل طبقة العرض.

تقنيات متقدمة: تطوير إضافة نوع مخصصة

خاص الإضافات المخصصة تتحط فـ bookleme/plugins/user/<genre_id>.py. المشروع كيطلب من الإضافة تصرح بالحقول الأساسية؛ وإلا نقص شي حقل ضروري، غادي يترفض تحميلها.

  • state_machine: كتحدد حالات المسار والانتقالات بينها.
  • output_contract: كتحدد الخرج اللي خاص المنتوج يوفره.
  • hard_constraints: كتحدد القواعد اللي ممنوع تتخرق.
  • anti_patterns: كتسرد السلوكات الخاطئة اللي خاص تتفادى.
  • voice_calibration: كتحدد النبرة، وطريقة المناداة، والكلمات الممنوعة، ونسبة الاستنتاج لصاحبو.
  • copyright_profile: كتصرح بالإعدادات المرتبطة بمراقبة حقوق النشر.
  • trigger_words: كتقدم من 3 حتى 5 كلمات تفعيل بالصينية.
  • eval_prompts: كتقدم مطالب للتقييم، ومن بينها على الأقل مثال سلبي واحد.

قبل ما تكتب الإضافة، من الأحسن تقرا مواصفات الإضافات؛ ومن بعد ما تكمل، استعمل plugin validate للتحقق منها. ما تستعملش الإضافة باش تدوز من فحص الوفاء، ولا من الحاجز الصارم ديال حقوق النشر، ولا من شرط رفض الأمثلة السلبية.

كيفاش كيخدم مسار S0–S9

  1. S0–S2: تسجيل المدخلات، والاستخراج الحتمي، والتوحيد، وتقسيم النص بالصينية، بلا اعتماد على علامات Chapter ثابتة بالإنجليزية.
  2. S3: توجيه النوع الأدبي اعتماداً على 12 خاصية؛ وفحالة الغموض يمكن الاختيار أوتوماتيكياً بين جوج محركات.
  3. S4: استخراج القدرات الذرية، باستعمال مستخرج حتمي ومستخرج اختياري ديال LLM متوافق مع OpenAI؛ إلا ما كانتش الإعدادات، كيرجع أوتوماتيكياً للخيار الاحتياطي.
  4. S5: التحقق من الاقتباسات كلمة بكلمة، والحفاظ على claim ledger، وحساب مؤشرات الوفاء للمصدر.
  5. S6: رندرة حزمة المعرفة أو Skill سلوكي حسب الإضافة، وهنا كاين بالضبط التفريع الحقيقي بين جوج المحركات.
  6. S7–S9: تنفيذ التحقق الشامل، والتثبيت القابل لإعادة التنفيذ بنفس النتيجة، والتقييمات السريعة.

S3 وS4 بجوج كياخدو نتيجة S2 كمدخل، ويقدرو يخدمو بالتوازي. جوج المحركات كيتشاركو فتمثيلات وسيطة ديال S1 وS2 وS4 وS5، باش ما يعاودوش القراية والاستخراج.

نصائح عملية

  • بدا بالمخطوط التركيبي اللي جاي مع المشروع باش تولف الأوامر، ومن بعد دوز للكتب الحقيقية.
  • إلا ما كنتيش متأكد من نوع المنتوج، استعمل --engine auto؛ وإلا بغيتي تقارن النتيجتين بجوج، استعمل both ولا --no-router.
  • من بعد كل تعديل فالإضافة ولا فالقالب، شغّل التحقق من المنتوجات والاختبارات الوحداتية.
  • خلي القدرة على رفض الإجابة فالمعلومات اللي ما كايناش فالكتاب، وما تعمرش النقص فالمصادر بمعارف النموذج العامة.
  • ما ترفعش النص الأصلي ديال الكتاب، ولا الغلاف، ولا النسخ الممسوحة ضوئياً للمستودع، وما تنشرش مباشرة منتوجات كتب الغير اللي مفروضة عليها الخصوصية.
  • قرا وثيقة الوفاء للمصدر ووثيقة حقوق النشر باش تعرف المؤشرات وحدود النشر.

الحدود الحالية

BookLeme دابا فمرحلة M0–M3. coach_dialogue وknowledge_reference راهوم مطبقين، ولكن إضافات التحليل المتخصص ولوائح اتخاذ القرار باقين فالخارطة المستقبلية. LLM judge مازال ما تدمجش، وبعض المؤشرات المرتابطة به مازال القيمة ديالها null. خاص فالاستخدام نفرّقو بين القدرات اللي تطبقات، واللي تجرّبات فعلياً، واللي مازال خاصها التحقق.

الخلاصة

BookLeme كيحوّل “القراية” لسلسلة هندسية قابلة للاختبار: الأول كيتستخرج النص وكيتقسم، من بعد كتتستخرج القدرات وكيتتحقق الوفاء للمصدر، وفالأخير كيتترندر المنتوج فحزمة معرفة ولا Skill سلوكي. من بعد أول compilation، من الأحسن تدخل التحقق، والاختبارات، وتصريحات الحقوق، وفحص حقوق النشر فالمسار الثابت، باش تستافد من طرق الكتاب مع الحفاظ على حدود المصدر وقابلية التحقق.