كيفية إضافة ذاكرة إلى وكيل وظائف OpenAI في LangChain؟

Kyfyt Adaft Dhakrt Aly Wkyl Wzayf Openai Fy Langchain



LangChain هو الإطار الذي يحتوي على تبعيات لبناء نماذج اللغة الكبيرة أو LLMs. كما يوفر أيضًا الأدوات اللازمة لبناء الوكلاء لتنفيذ جميع الخطوات الوسيطة بدءًا من الحصول على الاستعلام من المستخدم وحتى جلب إجابته. OpenAI هي بيئة توفر مخرجات منظمة وقابلة للقراءة من الإنترنت باستخدام 'نتائج بحث جوجل' وحدة.

مخطط سريع

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

كيفية إضافة ذاكرة إلى وكيل وظائف OpenAI في LangChain؟

OpenAI هي منظمة ذكاء اصطناعي (AI) تم تشكيلها في عام 2015 وكانت منظمة غير ربحية في البداية. استثمرت Microsoft الكثير من الثروات منذ عام 2020 حيث ازدهرت معالجة اللغات الطبيعية (NLP) مع الذكاء الاصطناعي مع روبوتات الدردشة ونماذج اللغة.







يتيح إنشاء وكلاء OpenAI للمطورين الحصول على نتائج أكثر قابلية للقراءة ودقيقة من الإنترنت. تتيح لهم إضافة ذاكرة إلى الوكلاء فهم سياق الدردشة بشكل أفضل وتخزين المحادثات السابقة في ذاكرتهم أيضًا. للتعرف على عملية إضافة الذاكرة إلى وكيل وظائف OpenAI في LangChain، ما عليك سوى اتباع الخطوات التالية:



الخطوة 1: تثبيت الأطر

أولاً، قم بتثبيت تبعيات LangChain من ملف 'لانجشين-تجريبية' الإطار باستخدام الكود التالي:



نقطة تثبيت لانجشين - تجريبي





تحميل هذا 'نتائج بحث جوجل' وحدة للحصول على نتائج البحث من خادم جوجل:

نقطة تثبيت جوجل - يبحث - نتائج



قم أيضًا بتثبيت وحدة OpenAI التي يمكن استخدامها لبناء نماذج اللغة في LangChain:

نقطة تثبيت openai

الخطوة 2: إعداد البيئات

بعد الحصول على الوحدات، قم بإعداد البيئات باستخدام مفاتيح API من OpenAI و SerpAPi حسابات:

يستورد أنت
يستورد com.getpass

أنت. تقريبًا [ 'OPENAI_API_KEY' ] = com.getpass. com.getpass ( 'مفتاح واجهة برمجة تطبيقات OpenAI:' )
أنت. تقريبًا [ 'SERPAPI_API_KEY' ] = com.getpass. com.getpass ( 'مفتاح واجهة برمجة تطبيقات Serpapi:' )

قم بتنفيذ الكود أعلاه لإدخال مفاتيح API للوصول إلى كل من البيئة واضغط على Enter للتأكيد:

الخطوة 3: استيراد المكتبات

الآن وبعد اكتمال الإعداد، استخدم التبعيات المثبتة من LangChain لاستيراد المكتبات المطلوبة لبناء الذاكرة والوكلاء:

من لانجشين. السلاسل يستورد LLMMathChain
من لانجشين. llms يستورد OpenAI
#احصل على مكتبة للبحث من جوجل عبر الإنترنت
من لانجشين. خدمات يستورد SerpAPIWrapper
من لانجشين. خدمات يستورد قاعدة بيانات SQL
من langchain_experimental. SQL يستورد SQLDatabaseChain
#احصل على مكتبة لبناء الأدوات ل تهيئة الوكيل
من لانجشين. عملاء يستورد نوع الوكيل , أداة , تهيئة_agent
من لانجشين. chat_models يستورد ChatOpenAI

الخطوة 4: بناء قاعدة البيانات

لمتابعة هذا الدليل، نحتاج إلى إنشاء قاعدة البيانات والاتصال بالوكيل لاستخراج الإجابات منه. لبناء قاعدة البيانات، يلزم تنزيل SQLite باستخدام هذا مرشد وتأكيد التثبيت باستخدام الأمر التالي:

sqlite3

تشغيل الأمر أعلاه في محطة ويندوز يعرض الإصدار المثبت من SQLite (3.43.2):

بعد ذلك، ما عليك سوى التوجه إلى الدليل الموجود على جهاز الكمبيوتر الخاص بك حيث سيتم إنشاء قاعدة البيانات وتخزينها:

سطح المكتب القرص المضغوط
مؤتمر نزع السلاح مايدب
sqlite3 شينوك. ديسيبل

يمكن للمستخدم ببساطة تنزيل محتويات قاعدة البيانات من هذا وصلة في الدليل وتنفيذ الأمر التالي لإنشاء قاعدة البيانات:

. يقرأ شينوك_Sqlite. SQL
يختار * من الفنان ليميت 10 ;

تم بناء قاعدة البيانات بنجاح ويمكن للمستخدم البحث عن البيانات منها باستخدام استعلامات مختلفة:

الخطوة 5: تحميل قاعدة البيانات

بمجرد إنشاء قاعدة البيانات بنجاح، قم بتحميل الملف '.ديسيبل' الملف إلى Google Collaboratory باستخدام الكود التالي:

من جوجل. وآخرون يستورد ملفات
تم الرفع = ملفات. رفع ( )

اختر الملف من النظام المحلي بالضغط على 'اختر الملفات' الزر بعد تنفيذ الكود أعلاه:

بمجرد تحميل الملف، ما عليك سوى نسخ مسار الملف الذي سيتم استخدامه في الخطوة التالية:

الخطوة 6: تكوين نموذج اللغة

قم ببناء نموذج اللغة والسلاسل والأدوات والسلاسل باستخدام الكود التالي:

LLM = ChatOpenAI ( درجة حرارة = 0 , نموذج = 'جي بي تي-3.5-تيربو-0613' )
يبحث = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( LLM = LLM , مطول = حقيقي )
ديسيبل = قاعدة بيانات SQL. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( LLM , ديسيبل , مطول = حقيقي )
أدوات = [
أداة (
اسم = 'يبحث' ,
func = يبحث. يجري ,
وصف = 'اطرح الأسئلة المستهدفة للحصول على إجابات للأسئلة المتعلقة بالأحداث الأخيرة' ,
) ,
أداة (
اسم = 'آلة حاسبة' ,
func = llm_math_chain. يجري ,
وصف = 'مفيدة للإجابة/حل المشاكل الرياضية' ,
) ,
أداة (
اسم = 'فوبار-DB' ,
func = db_chain. يجري ,
وصف = 'مفيد للإجابة على الأسئلة حول FooBar ويجب أن تكون الإدخال في شكل سؤال يحتوي على سياق كامل' ,
) ,
]
  • ال LLM يحتوي المتغير على تكوينات نموذج اللغة باستخدام طريقة ChatOpenAI() مع اسم النموذج.
  • البحث يحتوي المتغير على طريقة SerpAPIWrapper() لإنشاء الأدوات الخاصة بالوكيل.
  • بناء llm_math_chain للحصول على الإجابات المتعلقة بمجال الرياضيات باستخدام طريقة LLMMathChain().
  • يحتوي المتغير db على مسار الملف الذي يحتوي على محتويات قاعدة البيانات. يحتاج المستخدم إلى تغيير الجزء الأخير فقط وهو 'المحتوى/Chinook.db' من مسار الحفاظ على 'سقلايت:///../../../../../' نفس الشيء.
  • أنشئ سلسلة أخرى للإجابة على الاستفسارات من قاعدة البيانات باستخدام db_chain عامل.
  • تكوين الأدوات مثل يبحث , آلة حاسبة ، و فوبار-DB للبحث عن الإجابة والإجابة على الأسئلة الرياضية والاستفسارات من قاعدة البيانات على التوالي:

الخطوة 7: إضافة الذاكرة

بعد تكوين وظائف OpenAI، ما عليك سوى إنشاء الذاكرة وإضافتها إلى الوكيل:

من لانجشين. حث يستورد الرسائل النائب
من لانجشين. ذاكرة يستورد ذاكرة المخزن المؤقت للمحادثة

agent_kwargs = {
'رسائل_موجهة_إضافية' : [ الرسائل النائب ( اسم المتغير = 'ذاكرة' ) ] ,
}
ذاكرة = ذاكرة المخزن المؤقت للمحادثة ( Memory_key = 'ذاكرة' , return_messages = حقيقي )

الخطوة 8: تهيئة الوكيل

العنصر الأخير الذي يتم إنشاؤه وتهيئته هو الوكيل، الذي يحتوي على جميع المكونات مثل LLM , أداة , OPENAI_FUNCTIONS وغيرها لاستخدامها في هذه العملية:

عامل = تهيئة_agent (
أدوات ,
LLM ,
عامل = نوع الوكيل. OPENAI_FUNCTIONS ,
مطول = حقيقي ,
agent_kwargs = agent_kwargs ,
ذاكرة = ذاكرة ,
)

الخطوة 9: اختبار الوكيل

أخيرًا، اختبر الوكيل عن طريق بدء الدردشة باستخدام ' أهلاً ' رسالة:

عامل. يجري ( 'أهلاً' )

أضف بعض المعلومات إلى الذاكرة عن طريق تشغيل الوكيل معها:

عامل. يجري ( 'اسمي جون سنو' )

والآن قم باختبار الذاكرة من خلال طرح السؤال الخاص بالدردشة السابقة:

عامل. يجري ( 'ما هو اسمي' )

لقد استجاب الوكيل بالاسم الذي تم جلبه من الذاكرة بحيث تعمل الذاكرة بنجاح مع الوكيل:

هذا كل شئ حتى الان.

خاتمة

لإضافة الذاكرة إلى وكيل وظائف OpenAI في LangChain، قم بتثبيت الوحدات للحصول على التبعيات لاستيراد المكتبات. بعد ذلك، ما عليك سوى إنشاء قاعدة البيانات وتحميلها إلى دفتر Python حتى يمكن استخدامها مع النموذج. قم بتكوين النموذج والأدوات والسلاسل وقاعدة البيانات قبل إضافتها إلى الوكيل وتهيئته. قبل اختبار الذاكرة، أنشئ الذاكرة باستخدام ConversationalBufferMemory() وأضفها إلى الوكيل قبل اختبارها. لقد تناول هذا الدليل بالتفصيل كيفية إضافة ذاكرة إلى وكيل وظائف OpenAI في LangChain.