كيفية إضافة نوع ذاكرة مخصص في LangChain؟

Kyfyt Adaft Nw Dhakrt Mkhss Fy Langchain



يتم استخدام LangChain لتكوين/تصميم نماذج اللغة أو Chatbots التي يمكنها التفاعل مع البشر مثل الدردشة. ترتبط رسائل الدردشة هذه عبر سلاسل كما يوحي الاسم LangChain ويمكن للمستخدم أيضًا تخزينها في الذاكرة. يسمح LangChain للمطورين باستخدام مكتبات الذاكرة التي توفر استخدام الفئات المضمنة أو تخصيص الذاكرة الخاصة بهم.

مخطط سريع

سوف تظهر هذه المشاركة:







كيفية إضافة نوع ذاكرة مخصص في LangChain



خاتمة



كيفية إضافة نوع ذاكرة مخصص في LangChain؟

تتيح إضافة نوع ذاكرة مخصص في LangChain للمستخدم الحصول على أقصى أداء للذاكرة. يمكن للمستخدم تكوين نوع الذاكرة وفقا لمتطلباته. لإضافة نوع ذاكرة مخصص في LangChain، ما عليك سوى اتباع الخطوات التالية:





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

أولاً، قم بتثبيت إطار عمل LangChain للبدء في عملية إضافة نوع ذاكرة مخصص:

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

سيؤدي تشغيل الأمر أعلاه في Python Notebook إلى تثبيت تبعيات LangChain كما هو معروض في المقتطف التالي:



قم بتثبيت وحدة OpenAI للحصول على مكتباتها التي يمكن استخدامها لتكوين LLMs:

نقطة تثبيت openai

سيستخدم هذا الدليل إطار عمل spaCy لتصميم نوع الذاكرة المخصصة في LangChain ويتم استخدام الكود التالي لتثبيت الوحدة:

نقطة تثبيت سباسي

يستخدم نموذج SpaCy جدول التجزئة لتخزين المعلومات كملاحظة مثل رسائل الدردشة السابقة. يتم استخدام الكود التالي لتنزيل نموذج اللغة الكبير أو LLM من مكتبة spaCy لبناء نموذج البرمجة اللغوية العصبية المتقدم:

! python -m spacey تنزيل en_core_web_lg

استيراد ' أنت ' و ' com.getpass 'المكتبات مخصصة لإدخال مفتاح API من حساب OpenAI إلى إعداد بيئتها :

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

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

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

الخطوة التالية هي استيراد المكتبات المطلوبة لتخصيص نوع الذاكرة وفقًا لنموذج الدردشة:

من com.langchain. مخطط يستورد BaseMemory

من com.langchain. السلاسل يستورد ConversationChain

من متحذلق يستورد نموذج القاعدة

من com.langchain. llms يستورد OpenAI

من الكتابة يستورد قائمة , قاموس , أي

استيراد ' سباسي 'مكتبة لتحميل' ar_core_web_lg 'نموذج وتعيينه إلى' البرمجة اللغوية العصبية ” المتغير كما هو نموذج معالجة اللغة الطبيعية:

يستورد سباسي

البرمجة اللغوية العصبية = سباسي. حمولة ( 'ar_core_web_lg' )

الخطوة 3: بناء الذاكرة المخصصة

بعد ذلك، ما عليك سوى إنشاء الذاكرة المخصصة باستخدام وسيطات BaseMemory وBaseModel في فئة الذاكرة. ثم قم بتكوين الكيانات (المجمعة/المخزنة من البيانات) التي يمكن تخزينها في الذاكرة كمعلومات كاملة أو كوحدة واحدة. تم تكوين الذاكرة لتحتوي على كافة الكيانات من المستند لتحسين أداء الذاكرة والنموذج:

فصل SpacyEntityMemory ( BaseMemory , نموذج القاعدة ) :
''' فئة الذاكرة لتخزين المعلومات حول الكيانات'''
جهات: قاموس = { }
مفتاح_الذاكرة: شارع = 'جهات'
مواطنه واضح ( الذات ) :
الذات . جهات = { }
@ ملكية
مواطنه Memory_variables ( الذات ) - > قائمة [ شارع ] :
''' تهيئة المتغيرات المتوفرة للاستعلام'''
يعود [ الذات . Memory_key ]
# تحديد متغيرات الذاكرة باستخدام الوسائط
مواطنه Load_memory_variables ( الذات , المدخلات: ديكت [ شارع , أي ] ) - > قاموس [ شارع , شارع ] :
''' استدعاء المتغيرات للذاكرة، أي مفتاح الكيان'''
وثيقة = البرمجة اللغوية العصبية ( المدخلات [ قائمة ( المدخلات. مفاتيح ( ) ) [ 0 ] ] )
#تكوين الكيانات المراد تخزينها في الذاكرة لوحدة فردية
جهات = [
الذات . جهات [ شارع ( الأنف والحنجرة ) ] ل الأنف والحنجرة في وثيقة. إنتس لو شارع ( الأنف والحنجرة ) في الذات . جهات
]
يعود { الذات . Memory_key : ' ' . ينضم ( جهات ) }
#حدد save_context() لاستخدام الذاكرة
مواطنه save_context ( الذات , المدخلات: ديكت [ شارع , أي ] , المخرجات: ديكت [ شارع , شارع ] ) - > لا أحد :
'''تخزين الملاحظة من هذه الدردشة إلى الذاكرة'''
نص = المدخلات [ قائمة ( المدخلات. مفاتيح ( ) ) [ 0 ] ]
وثيقة = البرمجة اللغوية العصبية ( نص )
ل الأنف والحنجرة في وثيقة. إنتس :
ent_str = شارع ( الأنف والحنجرة )
لو ent_str في الذات . جهات :
الذات . جهات [ ent_str ] + = F ' {نص}'
آخر :
الذات . جهات [ ent_str ] = نص

الخطوة 4: تكوين قالب المطالبة

بعد ذلك، ما عليك سوى تكوين قالب المطالبة الذي يشرح بنية الإدخال المقدم من المستخدم/الإنسان:

من com.langchain. حث . اِسْتَدْعَى يستورد قالب موجه

نموذج = '''ما يلي هو تفاعل بين الآلة والإنسان ويقول إنه لا يعرف إذا كانت الآلة لا تعرف الإجابة فإن الآلة (الذكاء الاصطناعي) تقدم تفاصيل من سياقها وإذا لم تفهم الإجابة على أي سؤال فإنها يقول ببساطة آسف

معلومات الكيان:

{جهات}

تواصل:

إنسان: {إدخال}

الذكاء الاصطناعي:'''


اِسْتَدْعَى = قالب موجه ( input_variables = [ 'جهات' , 'مدخل' ] , نموذج = نموذج )

الخطوة 5: اختبار النموذج

قبل اختبار النموذج، ما عليك سوى تكوين LLM باستخدام طريقة OpenAI() وإعداد وظيفة ConversationChain() باستخدام الوسائط:

LLM = OpenAI ( درجة حرارة = 0 )

محادثة = ConversationChain (

LLM = LLM , اِسْتَدْعَى = اِسْتَدْعَى , مطول = حقيقي , ذاكرة = SpacyEntityMemory ( )

)

قم بإعطاء معلومات للنموذج باستخدام وسيطة الإدخال أثناء استدعاء طريقة التنبؤ () مع متغير المحادثة:

محادثة. يتنبأ ( مدخل = 'هاريسون يحب التعلم الآلي' )

انتاج |

لقد استوعب النموذج المعلومات وخزنها في الذاكرة وطرح أيضًا السؤال المتعلق بالمعلومات لمواصلة المحادثة:

يمكن للمستخدم الرد على السؤال من النموذج لإضافة المزيد من المعلومات إلى الذاكرة أو اختبار الذاكرة من خلال طرح السؤال حول المعلومات:

محادثة. يتنبأ (

مدخل = 'ما هو الموضوع المفضل لدى هاريسون'

)

يعطي النموذج المخرجات بناءً على المعلومات السابقة ويعرضها على الشاشة كما يظهر المقتطف التالي:

يتعلق الأمر بإضافة نوع ذاكرة مخصص في LangChain.

خاتمة

لإضافة نوع ذاكرة مخصص في LangChain، ما عليك سوى تثبيت الوحدات المطلوبة لاستيراد المكتبات لإنشاء الذاكرة المخصصة. تعد spaCy مكتبة مهمة يتم استخدامها في هذا الدليل لإضافة ذاكرة مخصصة باستخدام نموذج البرمجة اللغوية العصبية (NLP) الخاص بها. بعد ذلك، قم بتكوين الذاكرة المخصصة ونموذج المطالبة لإعطاء بنية واجهة الدردشة. بمجرد الانتهاء من التكوين، ما عليك سوى اختبار ذاكرة النموذج عن طريق طلب المعلومات المتعلقة بالبيانات المخزنة.