مخطط سريع
ستوضح هذه المشاركة ما يلي:
كيفية نسخ نظام MRKL باستخدام الوكلاء في LangChain
- الخطوة 1: تثبيت الأطر
- الخطوة 2: إعداد بيئة OpenAI
- الخطوة 3: استيراد المكتبات
- الخطوة 4: بناء قاعدة البيانات
- الخطوة 5: تحميل قاعدة البيانات
- الخطوة 6: تكوين الأدوات
- الخطوة 7: بناء الوكيل واختباره
- الخطوة 8: تكرار نظام MRKL
- الخطوة 9: استخدام ChatModel
- الخطوة 10: اختبار وكيل MRKL
- الخطوة 11: تكرار نظام MRKL
كيفية تكرار نظام MRKL باستخدام الوكلاء في LangChain؟
يتيح LangChain للمستخدم إنشاء وكلاء يمكن استخدامه لأداء مهام متعددة لنماذج اللغة أو روبوتات الدردشة. يقوم الوكلاء بتخزين عملهم مع جميع الخطوات في الذاكرة المرفقة بنموذج اللغة. باستخدام هذه القوالب، يمكن للوكيل تكرار عمل أي نظام مثل MRKL للحصول على النتائج المحسنة دون الحاجة إلى بنائها مرة أخرى.
للتعرف على عملية نسخ نظام MRKL باستخدام الوكلاء في LangChain، ما عليك سوى اتباع الخطوات المذكورة:
الخطوة 1: تثبيت الأطر
أولاً، قم بتثبيت وحدات LangChain التجريبية باستخدام النقطة باستخدام الأمر langchain-experimental:
نقطة تثبيت langchain التجريبية
قم بتثبيت وحدة OpenAI لبناء نموذج اللغة لنظام MRKL:
نقطة تثبيت openai
الخطوة 2: إعداد بيئة OpenAI
قم باستيراد مكتبات نظام التشغيل وgetpass للوصول إلى التشغيل لمطالبة المستخدم بتوفير مفاتيح واجهة برمجة التطبيقات لحسابات OpenAI وSerpAPi:
يستورد أنتيستورد com.getpass
أنت . تقريبًا [ 'OPENAI_API_KEY' ] = com.getpass . com.getpass ( 'مفتاح واجهة برمجة تطبيقات OpenAI:' )
أنت . تقريبًا [ 'SERPAPI_API_KEY' ] = com.getpass . com.getpass ( 'مفتاح واجهة برمجة تطبيقات Serpapi:' )
الخطوة 3: استيراد المكتبات
استخدم التبعيات من LangChain لاستيراد المكتبات المطلوبة لبناء نموذج اللغة والأدوات والوكلاء:
من com.langchain. السلاسل يستورد LLMMathChainمن com.langchain. llms يستورد OpenAI
من com.langchain. خدمات يستورد SerpAPIWrapper
من com.langchain. خدمات يستورد قاعدة بيانات SQL
من langchain_experimental. SQL يستورد SQLDatabaseChain
من com.langchain. عملاء يستورد تهيئة_agent , أداة
من com.langchain. عملاء يستورد نوع الوكيل
الخطوة 4: بناء قاعدة البيانات
يستخدم MRKL مصادر المعرفة الخارجية لاستخراج المعلومات من البيانات. يستخدم هذا المنشور SQLite والذي يمكن تنزيله باستخدام هذا مرشد لبناء قاعدة البيانات. يؤكد الأمر التالي عملية تنزيل SQLite من خلال عرض نسخته المثبتة:
sqlite3
استخدم رأس الأوامر التالي داخل الدليل لإنشاء قاعدة البيانات باستخدام موجه الأوامر:
قرص مضغوط سطح المكتبقرص مضغوط mydb
sqlite3 شينوك. ديسيبل
تحميل قاعدة البيانات ملف وتخزينه في الدليل لاستخدام الأمر التالي لإنشاء ' .ديسيبل ' ملف:
. يقرأ شينوك_Sqlite. SQLاختر * من الفنان LIMIT 10 ;
الخطوة 5: تحميل قاعدة البيانات
بمجرد إنشاء قاعدة البيانات بنجاح، قم بتحميل الملف في Google التعاوني:
من جوجل. وآخرون يستورد ملفاتتم الرفع = ملفات. رفع ( )
يمكن للمستخدم الوصول إلى الملف الذي تم تحميله على دفتر الملاحظات لنسخ مساره من القائمة المنسدلة:
الخطوة 6: تكوين الأدوات
بعد إنشاء قاعدة البيانات، قم بتكوين نموذج اللغة والأدوات والسلاسل للوكلاء:
يبحث = SerpAPIWrapper ( )LLM = OpenAI ( درجة حرارة = 0 )
llm_math_chain = LLMMathChain ( LLM = LLM , مطول = حقيقي )
ديسيبل = قاعدة بيانات SQL. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( LLM , ديسيبل , مطول = حقيقي )
أدوات = [
أداة (
اسم = 'يبحث' ,
func = يبحث. يجري ,
وصف = 'اسأل المطالبات المستهدفة للحصول على إجابات حول الشؤون الأخيرة'
) ,
أداة (
اسم = 'آلة حاسبة' ,
func = llm_math_chain. يجري ,
وصف = 'مفيدة للإجابة/حل المشاكل الرياضية'
) ,
أداة (
اسم = 'قاعدة بيانات فوبار' ,
func = db_chain. يجري ,
وصف = 'مفيد للإجابة على الاستفسارات من قاعدة البيانات ويجب أن يكون لسؤال الإدخال السياق الكامل'
)
]
- تعريف LLM المتغير باستخدام أوبن آي () طريقة الحصول على النموذج اللغوي
- ال يبحث هي الأداة التي تستدعي SerpAPIWrapper() طريقة الوصول إلى بيئته.
- ال LLMMathChain() يتم استخدام الطريقة للحصول على الإجابات المتعلقة بالمسائل الرياضية.
- تعريف ديسيبل متغير مع مسار الملف داخل قاعدة بيانات SQL() طريقة.
- ال SQLDatabaseChain() يمكن استخدام الطريقة للحصول على المعلومات من قاعدة البيانات.
- تحديد الأدوات مثل يبحث , آلة حاسبة ، و قاعدة بيانات فوبار لبناء الوكيل لاستخراج البيانات من مصادر مختلفة:
الخطوة 7: بناء الوكيل واختباره
قم بتهيئة نظام MRKL باستخدام الأدوات والمواد والوكيل للحصول على إجابات للأسئلة التي يطرحها المستخدم:
mrkl = تهيئة_agent ( أدوات , LLM , عامل = نوع الوكيل. ZERO_SHOT_REACT_DESCRIPTION , مطول = حقيقي )قم بتنفيذ نظام MRKL باستخدام طريقة run() مع السؤال كوسيطة له:
mrkl. يجري ( 'ما هو العمر الحالي لليو دي كابريو وصديقته الذي يوضح أيضًا فارق السن بينهما' )انتاج |
قام الوكيل بإنتاج الإجابة النهائية بالمسار الكامل الذي يستخدمه النظام لاستخراج الإجابة النهائية:
الخطوة 8: تكرار نظام MRKL
الآن، ببساطة استخدم mrkl الكلمة الأساسية باستخدام طريقة run() للحصول على إجابات من مصادر مختلفة مثل قواعد البيانات:
mrkl. يجري ( 'ما هو الاسم الكامل للفنان الذي صدر ألبومه 'The Storm Before the Calm' مؤخرًا وهل هم موجودون في قاعدة بيانات FooBar وأي ألبوماتهم موجودة في قاعدة البيانات' )قام الوكيل تلقائيًا بتحويل السؤال إلى استعلام SQL لجلب الإجابة من قاعدة البيانات. يبحث الوكيل عن المصدر الصحيح للحصول على الإجابة ثم يقوم بتجميع الاستعلام لاستخراج المعلومات:
الخطوة 9: استخدام ChatModel
يمكن للمستخدم ببساطة تغيير نموذج اللغة باستخدام طريقة ChatOpenAI() لجعله ChatModel واستخدام نظام MRKL معه:
من com.langchain. chat_models يستورد ChatOpenAIيبحث = SerpAPIWrapper ( )
LLM = ChatOpenAI ( درجة حرارة = 0 )
LLM1 = OpenAI ( درجة حرارة = 0 )
llm_math_chain = LLMMathChain ( LLM = LLM1 , مطول = حقيقي )
ديسيبل = قاعدة بيانات SQL. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( LLM1 , ديسيبل , مطول = حقيقي )
أدوات = [
أداة (
اسم = 'يبحث' ,
func = يبحث. يجري ,
وصف = 'اسأل المطالبات المستهدفة للحصول على إجابات حول الشؤون الأخيرة'
) ,
أداة (
اسم = 'آلة حاسبة' ,
func = llm_math_chain. يجري ,
وصف = 'مفيدة للإجابة/حل المشاكل الرياضية'
) ,
أداة (
اسم = 'قاعدة بيانات فوبار' ,
func = db_chain. يجري ,
وصف = 'مفيد للإجابة على الاستفسارات من قاعدة البيانات ويجب أن يكون لسؤال الإدخال السياق الكامل'
)
]
الخطوة 10: اختبار وكيل MRKL
بعد ذلك، قم ببناء الوكيل وتهيئته في المتغير mrkl باستخدام طريقة التهيئة_agent(). أضف معلمة الطريقة لدمج المكونات مثل الأدوات والمبادئ والوكيل والمطول للحصول على العملية الكاملة في الإخراج:
mrkl = تهيئة_agent ( أدوات , LLM , عامل = نوع الوكيل. CHAT_ZERO_SHOT_REACT_DESCRIPTION , مطول = حقيقي )قم بتنفيذ السؤال عن طريق تشغيل نظام mrkl كما هو موضح في الصورة التالية:
mrkl. يجري ( 'من هي صديقة ليو دي كابريو؟ ما هو عمرها الحالي' )
انتاج |
يعرض المقتطف التالي الإجابة النهائية التي استخرجها الوكيل:
الخطوة 11: تكرار نظام MRKL
استخدم نظام MRKL عن طريق استدعاء الأسلوب run() مع السؤال باللغة الطبيعية لاستخراج المعلومات من قاعدة البيانات:
mrkl. يجري ( 'ما هو الاسم الكامل للفنان الذي صدر ألبومه 'The Storm Before the Calm' مؤخرًا وهل هم موجودون في قاعدة بيانات FooBar وأي ألبوماتهم موجودة في قاعدة البيانات' )انتاج |
قام الوكيل بعرض الإجابة النهائية المستخرجة من قاعدة البيانات كما هو موضح في لقطة الشاشة التالية:
يتعلق الأمر كله بعملية تكرار نظام MRKL باستخدام وكلاء في LangChain:
خاتمة
لنسخ نظام MRKL باستخدام وكلاء في LangChain، قم بتثبيت الوحدات للحصول على التبعيات لاستيراد المكتبات. يُطلب من المكتبات بناء نموذج اللغة أو نموذج الدردشة للحصول على الإجابات من مصادر متعددة باستخدام الأدوات. تم تكوين الوكلاء لاستخدام الأدوات اللازمة لاستخراج المخرجات من مصادر مختلفة مثل الإنترنت وقواعد البيانات وما إلى ذلك. لقد تناول هذا الدليل بالتفصيل عملية تكرار نظام MRKL باستخدام الوكلاء في LangChain.