مستوحاة من yoheina kajima's babyagi
يوفر مستودع Babyagi-Chroma حل تخزين متجه مجاني ، Chroma ، والذي يتم تشغيله محليًا. هذا مفيد بشكل خاص للمستخدمين الذين يرغبون في تجنب التكاليف المحتملة المرتبطة بخيارات تخزين المتجهات الأخرى مثل Pinecone.
يعرض هذا البرنامج النصي Python مثالًا على نظام إدارة المهام الذي يعمل بذات AI والذي يستفيد من قاعدة بيانات المتجهات Langchain و Openai و Chroma لإنشاء المهام وتحديد أولها وتنفيذها. ينشئ النظام مهام بناءً على نتائج المهام السابقة وهدف محدد مسبقًا. يستخدم البرنامج النصي بعد ذلك مجموعة أدوات Openai Natural Processing (NLP) من Langchain وقدرات البحث لإنشاء مهام جديدة بناءً على الهدف ، بينما يقوم Chroma بتخزين نتائج المهمة واسترجاعها للسياق. هذه نسخة مبسطة من العامل المستقل القائم على المهام (28 مارس ، 2023).
يغطي هذا ReadMe الموضوعات التالية:
يقوم البرنامج النصي بتنفيذ الخطوات التالية في حلقة لا حصر لها:
تقوم سلسلة التنفيذ بمعالجة مهمة معينة من خلال النظر في الهدف والسياق. يستخدم llmchain من Langchain لتنفيذ المهمة. تأخذ دالة execute_task chroma vectorstore ، وسلسلة تنفيذ ، وهدف ، ومعلومات المهمة كمدخلات. يسترجع قائمة بمهام أفضل K من VectorStore استنادًا إلى الهدف ، ثم ينفذ المهمة باستخدام سلسلة التنفيذ ، وتخزين النتيجة في VectorStore. تُرجع الوظيفة النتيجة.
لم يتم تعريف سلسلة التنفيذ بشكل صريح في كتلة الرمز هذه. ومع ذلك ، يتم تمريرها كمعلمة execute_task ويمكن تعريفها بشكل منفصل في الكود. إنه مثيل لفئة LLMCHAIN من Langchain ، والتي تقبل مطالبة وإنشاء استجابة تعتمد على متغيرات الإدخال المقدمة.
توظف فئة TaskCreationChain LLMCHAIN لإنشاء مهام جديدة. تأخذ دالة from_llm في المعلمات باستخدام kerdTemplate من Langchain ، وإعادة قائمة المهام الجديدة كسلاسل. ثم ينشئ مثيلًا لـ TaskCreationChain جنبًا إلى جنب مع متغيرات الإدخال المخصصة والسلوك المحدد.
تستخدم فئة TaskPrioritizationChain LLMCHAIN لتحديد أولويات المهام. تقبل دالة from_llm المعلمات من خلال kerdtemplate من Langchain ، مع إرجاع قائمة المهام الجديدة كسلاسل. ثم ينشئ مثيلًا لـ TaskPrioritizationChain جنبًا إلى جنب مع متغيرات الإدخال المخصصة والسلوك المحدد.
يقوم البرنامج النصي بالاستفادة من Chroma لتخزين وبحث التشابه واسترداد نتائج المهمة للسياق. ينشئ فهرس Chroma استنادًا إلى اسم الجدول المحدد في متغير TABLE_NAME . تقوم Chroma بعد ذلك بتخزين المهمة نتائج الفهرس ، إلى جانب اسم المهمة وأي بيانات تعريف إضافية.
للاستفادة من البرنامج النصي ، قم بتنفيذ الخطوات التالية:
git clone https://github.com/alexdphan/babyagi-chroma.git و cd في الدليل المستنسخ.pip install -r requirements.txt.env.example إلى .env : cp .env.example .env . اضبط المتغيرات التالية في هذا الملف.OPENAI_API_KEY و SERPAPI_API_KEY .TABLE_NAME .OBJECTIVE .INITIAL_TASK .python babyagi-chroma.py .يمكن أيضًا تحديد جميع القيم الاختيارية أعلاه على سطر الأوامر.
هذا البرنامج النصي يعمل مع جميع نماذج Openai. النموذج الافتراضي هو GPT-3.5 (Text-Davinci-003) . لاستخدام نموذج مختلف ، لا تتردد في تعديل الكود وفقًا لذلك.
تم تصميم هذا البرنامج النصي ليتم تشغيله بشكل مستمر كجزء من نظام إدارة المهام. يمكن أن يؤدي تشغيل البرنامج النصي باستمرار إلى استخدام عالي API ، لذا يرجى استخدامه بمسؤولية. بالإضافة إلى ذلك ، يتطلب البرنامج النصي إعداد API Openai و Serp بشكل صحيح ، لذا تأكد من تكوين واجهات برمجة التطبيقات قبل تشغيل البرنامج النصي.
للحفاظ على البساطة ، يرجى الالتزام بالإرشادات التالية عند تقديم PRS:
مع كون تكاليف تخزين المتجهات باهظة الثمن ، كان الهدف هو توفير خيار تخزين مجاني عند استخدام Babyagi. وبالتالي ، يوضح مثال القالب باستخدام Babyagi مع Chroma.
Babyagi-Chroma هي نسخة مقصورة من Babyagi ، والتي تعد أيضًا نسخة مبسطة من الوكيل المستقل القائم على المهام (28 مارس 2023) على Twitter.