هذا المشروع عبارة عن غلاف صغير فوق AutoGen. إنه يدمج خادم وكيل LiteLLM ليمنحك وصولاً سهلاً إلى أي LLM (خاص أو مفتوح المصدر)، دون الحاجة إلى مغادرة جهازك الطرفي.
ويستخدم مكتبات Rich وpromp_toolkit لتلوين المدخلات/المخرجات مما يجعل قراءة الاستجابات الكبيرة في محطة عادية أكثر سهولة في الهضم:
الإدخال: الإخراج
يوفر هذا القسم إرشادات حول كيفية إعداد بيئة التطوير الخاصة بك للعمل على هذا المشروع.
قبل أن تبدأ، تأكد من تثبيت pyenv
أو conda
على نظامك لإدارة إصدارات وبيئات Python.
تم اختبار هذا المشروع باستخدام Python 3.11.8
. يوصى باستخدام هذا الإصدار المحدد لتجنب أي مشكلات في التوافق.
إذا كنت تستخدم pyenv
، فيمكنك تثبيت Python 3.11.8
وتعيينه كإصدار محلي للمشروع باستخدام الأوامر التالية:
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
إذا كنت تفضل conda
، فأنشئ بيئة جديدة باستخدام Python 3.11.8
باستخدام الأمر التالي:
conda create --name myenv python=3.11.8
conda activate myenv
استبدل myenv
بالاسم الذي تختاره للبيئة.
بمجرد إعداد الإصدار الصحيح من Python، قم بتثبيت تبعيات المشروع عن طريق تشغيل:
pip install -e .
إذا كنت تخطط أيضًا لإعداد واستخدام واجهة مستخدم لوحة معلومات الوكيل litellm، والتي توفر مراقبة التكاليف وإحصائيات الاستخدام، فقم بتثبيت التبعيات الإضافية عبر:
pip install -e ' .[proxy] '
انسخ ملف .env.secrets.example
لإنشاء ملف .env.secrets
الخاص بك واملأ مفاتيح API المحددة الخاصة بك للخدمات التي تخطط لاستخدامها مثل OpenAI أو MistralAI أو Anthropicmodels أو غيرها.
cp .env.secrets.example .env.secrets
قم بتحرير ملف .env.secrets
باستخدام محرر النصوص المفضل لديك وقم بتحديث مفاتيح API حسب الحاجة.
تحتاج أولاً إلى إعداد قاعدة بيانات postgres لتخزين معلومات الاستخدام من litllm. أسهل طريقة للقيام بذلك هي إنشاء مثيل Superbase postgres مجاني مستضاف مع AWS.
بمجرد أن تصبح قاعدة البيانات جاهزة للاستخدام، تأكد من أنه يمكنك الاتصال بها
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
إذا نجح الاتصال، فما عليك سوى تعيين DATABASE_URL
env var في ملف .env.secrets
الخاص بك وستكون جاهزًا للبدء. في المرة التالية التي ستبدأ فيها تشغيل خادم Litellm، سيتصل تلقائيًا بقاعدة البيانات.
من خلال هذه الخطوات، يجب أن تكون جاهزًا للعمل على المشروع وتشغيل التطبيقات.
قم بتشغيل الأمر التالي
python setup.py fix
python setup.py review --file path/to/file
إحدى نقاط قوة LiteLLM هي أنها توفر واجهة موحدة لاستدعاء العديد من حاملي شهادات LLM من بين الميزات الرائعة الأخرى. في هذا السياق، نستخدم توسيع قدرات AutoGen لاستخدام نماذج الذكاء الاصطناعي الأخرى (والتي ليست مدعومة حاليًا خارج الصندوق، ولكنها قيد التنفيذ).
python setup.py litellm
يقدم Autogen أيضًا واجهة مستخدم أنيقة.
يقوم الأمر التالي بتشغيل تطبيق AGS ويجعل واجهة المستخدم متاحة على http://localhost:8083. يتم تخزين قاعدة بيانات AGS sqlite مع العناصر الأخرى ذات الصلة في src/ui
.
python setup.py ui
افتراضيًا، لا يتم توجيه طلبات نموذج OpenAI عبر litllm. هذا لأنه، إذا كنت تستخدم موفر LLM هذا فقط، فليس من المنطقي إضافة طبقة إضافية لأنه يمكنك بسهولة مراقبة التكاليف في https://platform.openai.com/usage. ومع ذلك، إذا كنت تستخدم موفري LLM متعددين، فمن المنطقي أن يتم تجميع جميع البيانات ضمن لوحة تحكم واحدة -> LiteLLM UI
.
إذا كان خادم وكيل LiteLLM قيد التشغيل، فسيتم توجيه جميع طلبات openai تلقائيًا عبر الوكيل.
خطوات:
بعد إعداد البيئة والتكوين، يمكنك تشغيل التطبيقات داخل الدليل src/applications/
.
يؤدي تنفيذ أحد التطبيقات إلى إنشاء جلسة محادثة جديدة بناءً على التدفق المحدد في هذا التطبيق.
هناك تطبيقان عامان للمحادثة:
start_conversation.py
محادثة بسيطة مع وكيل محدد من قائمة الوكلاء المتخصصين المحددين مسبقًا.start_curated_conversation.py
الذكاء الاصطناعي الناقد إلى المحادثة التي تراجع ادعاءات الوكيل الرئيسي يمكن إضافة وكلاء مخصصين جدد في ملف تعريف الوكيل agents/custom_agents.py
.
يمكنك إما تعديل message
داخل كل تطبيق، أو تنفيذ البرنامج النصي وإدخال المطالبة في سطر الأوامر (مستحسن). تحتوي الموجهات على دعم متعدد الأسطر، لذا Enter
فقط بإدراج سطر جديد. لإرسال المطالبة، اضغط على (Meta|Esc)+Enter
.
python chef.py
يوضح تطبيق chef.py
كيفية استخدام الوكلاء لتسهيل المحادثة حول الطهي. يُظهر إعداد محادثة جماعية مع وكلاء متعددين وبدء محادثة مع استعلام مستخدم.
ollama run codellama
litellm_config.yml
ليحتوي على مراجع النموذج المحلي الجديد أو المراجع إلى أي خدمات API أخرى مثل Mistral AI.النماذج الشائعة الأخرى: https://huggingface.co/WizardLM