Autogen هو إطار عمل مفتوح المصدر يمكّن من تطوير تطبيقات الذكاء الاصطناعي للمحادثة باستخدام عوامل متعددة.
Chroma DB هي قاعدة بيانات متجه مفتوح المصدر لتخزين واسترجاع التضمينات المتجهات.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U من PIP ترقية أي حزم مثبتة بالفعل إلى أحدث إصداراتها قبل التثبيت."pyautogen[retrievechat]" يقوم بتثبيت حزمة Pyautogen وأيضًا تثبيت الميزة "Retrievechat" الاختيارية لتلك الحزمة export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
يخبر تصدير AUTOGEN_USE_DOCKER=False Pyautogen لتشغيل مهامه مباشرة على المضيف بدلاً من استخدام حاويات Docker. إنه يتجاوز تبعية Docker ولكنه يفقد أيضًا بعض مزايا العزلة التي يوفرها Docker.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
يحدد ملف الرمز نظام chatbot باستخدام مكتبات Autogen و ChromadB. إليك تفصيلًا خطوة بخطوة للرمز:
الخطوة الأولى هي استيراد المكتبات اللازمة. في هذه الحالة ، نستخدم Autogen و ChromadB لإنشاء chatbot يمكنه استرداد المعلومات من قاعدة بيانات وإنشاء ردود بناءً على نموذج لغة.
import autogen
import chromadbبعد ذلك ، نحدد مساعد chatbot باستخدام فئة Assistantagent من مكتبة Autogen. يأخذ هذا الفئة اسمًا وتكوين نموذج اللغة ورسالة النظام كمدخلات.
assistant = AssistantAgent (
name = "my_assistant" ,
llm_config = llm_config_proxy ,
system_message = "You are a helpful assistant. Provide accurate answers based on the context. Respond 'Unsure about answer' if uncertain."
)نحدد أيضًا المستخدم باستخدام فئة RetrieveUserProxyagent من وحدة Autogen.AgentChat.Contrib. تأخذ هذه الفئة اسمًا ، ووضع الإدخال البشري ، ورسالة النظام ، والحد الأقصى لعدد من عمليات إعادة التوليف التلقائية المتتالية ، والتكوين لاسترداد المعلومات من قاعدة بيانات كمدخلات.
user = RetrieveUserProxyAgent (
name = "me_user" ,
human_input_mode = "NEVER" ,
system_message = "Assistant who has extra content retrieval power for solving difficult problems." ,
max_consecutive_auto_reply = 10 ,
retrieve_config = {
"task" : "code" ,
"docs_path" : [ './docs/autogen.pdf' ],
"chunk_token_size" : 1000 ,
"model" : config_list [ 0 ][ "model" ],
"client" : chromadb . PersistentClient ( path = '/tmp/chromadb' ),
"collection_name" : "pdfreader" ,
"get_or_create" : True ,
},
code_execution_config = { "work_dir" : "coding" },
)نحدد سؤال المستخدم أو موجه كمتغير سلسلة.
user_question = """
Compose a short blog post showcasing how AutoGen is revolutionizing the future of Generative AI
through the collaboration of various agents. Craft an introduction, main body, and a compelling
conclusion. Encourage readers to share the post. Keep the post under 500 words.
"""أخيرًا ، نبدأ جلسة الدردشة بين المستخدم و chatbot باستخدام طريقة interiate_chat لفئة RetrieveUserProxyagent.
user . initiate_chat ( assistant , problem = user_question )بشكل عام ، يحدد ملف الرمز نظام chatbot الذي يمكنه الرد على أسئلة المستخدم أو المطالبات عن طريق استرداد المعلومات من قاعدة بيانات وإنشاء ردود بناءً على نموذج لغة. يمكن لـ chatbot أيضًا تنفيذ التعليمات البرمجية وتقديم إجابات بناءً على سياق سؤال المستخدم.