كيفية تكرار نظام MRKL باستخدام الوكلاء في LangChain؟

Kyfyt Tkrar Nzam Mrkl Bastkhdam Alwkla Fy Langchain



نظام الاستدلال المعياري والمعرفة واللغة (MRKL) عبارة عن بنية يمكنها استخلاص الإجابات مع أسباب التحقق منها. فهو يدمج نماذج اللغة والتفكير المنفصل ومصادر المعرفة الخارجية. تنتج نماذج اللغة النص باللغات البشرية وفقًا للاستعلامات التي يطرحها المستخدم. MRKL (تنطق: معجزة) يضيف المنطق أثناء إنتاج الإجابات لجعل الإجابة دقيقة وصالحة.

مخطط سريع

ستوضح هذه المشاركة ما يلي:







كيفية نسخ نظام MRKL باستخدام الوكلاء في LangChain



خاتمة



كيفية تكرار نظام 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.