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

Kyfyt Astkhdam Almstrdwn Fy Langchain



LangChain هو الإطار الذي يسمح للمطورين ببناء نماذج لغة كبيرة (LLMs) يمكن استخدامها للتفاعل مع البشر. تحتاج الآلات إلى تعلم اللغات البشرية للتفاعل معها باستخدام LangChain لأنها توفر جميع المكتبات والتبعيات اللازمة لبناء هذه النماذج.

سيوضح هذا المنشور عملية استخدام المستردات في LangChain.

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

يعمل المستردون كواجهة بين النماذج والبشر حتى يتمكنوا من استخدامها للحصول على المخرجات المطلوبة باستخدام المدخلات المتوفرة باللغات الطبيعية. تُستخدم مخازن المتجهات لتخزين البيانات التي يمكن استخدامها للحصول على/استخراج المعلومات/البيانات منها.







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



الخطوة 1: تثبيت الوحدات
أولاً، قم بتثبيت الوحدات المطلوبة مثل LangChain حتى تتمكن مكتباتها وتبعياتها من متابعة العملية:



نقطة ثَبَّتَ com.langchain





قم بتثبيت متجر chromadb Vector Store الذي يمكن استخدامه لقاعدة البيانات للمسترد لجلب البيانات من المتجر:

نقطة ثَبَّتَ com.chromadb



الآن، قم بتثبيت إطار عمل OpenAI للحصول على مكتباته لاستخدام تضمين النص قبل إنشاء المسترد:

نقطة ثَبَّتَ openai

بعد تثبيت جميع الوحدات المطلوبة، ما عليك سوى إعداد البيئة باستخدام مفتاح OpenAI API:

استيراد لنا
استيراد getpass

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

الخطوة 2: تحميل مجموعة البيانات
الآن قم بتنفيذ الكود التالي ثم اضغط على 'اختر الملفات' زر وقم بتحميل المستند أو الملف من النظام المحلي:

من ملفات الاستيراد google.colab
تم الرفع = files.upload ( )

الخطوة 3: استيراد المكتبات
قم باستيراد المكتبات المطلوبة لبناء واستخدام المستردات في LangChain مثل ' قائمة '،' عمليات الاسترجاعات '، و أكثر من ذلك بكثير:

من ABC استيراد ABC، Abstractmethod
من كتابة استيراد أي قائمة
من langchain.schema مستند الاستيراد
من langchain.callbacks.manager استيراد عمليات الاسترجاعات

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

من langchain.chains استيراد RetrievalQA
من langchain.llms قم باستيراد OpenAI

هنا، قم بتحميل البيانات باستخدام محمل النص () الطريقة مع مسار الملف الذي تم تحميله في الخطوة 2:

قم باستيراد TextLoader من langchain.document_loaders
محمل = TextLoader ( 'state_of_the_union.txt' , التشفير = 'utf8' )

مكتبة الاستيراد VectorstoreIndexCreator من LangChain لبناء فهرس لقاعدة البيانات:

قم باستيراد VectorstoreIndexCreator من langchain.indexes

تعريف فِهرِس متغير باستخدام طريقة VectorstoreIndexCreator () باستخدام محمل عامل:

الفهرس = VectorstoreIndexCreator ( ) .from_loaders ( [ محمل ] )

قم بتطبيق الاستعلام لاختبار الفهرس عن طريق جلب البيانات من المستند:

الاستعلام = 'ماذا قال الرئيس زيلينسكي في خطابه'
Index.query ( استفسار )

احصل على تفاصيل الفهرس فيما يتعلق بقاعدة البيانات التي تحتوي على فِهرِس باستخدام الكود التالي:

Index.vectorstore

الكود التالي سيوضح كافة التفاصيل حول الفهرس ونوعه وقاعدة البيانات:

Index.vectorstore.as_retriever ( )

استخدم الفهرس مع طريقة الاستعلام () للمطالبة بملخص المستند باستخدام الوسيطة المصدر لاستخدام اسم المستند:

Index.query ( 'ملخص عام للبيانات من هذه الوثيقة' , Retriever_kwargs = { 'search_kwargs' : { 'منقي' : { 'مصدر' : 'state_of_the_union.txt' } } } )

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

المستندات = محمل.تحميل ( )

ابدأ عملية التضمين باستخدام text_splitter مع حجم القطع والوسائط المتداخلة:

من langchain.text_splitter قم باستيراد CharacterTextSplitter
#استخدام text_splitter لإنشاء أجزاء صغيرة من المستند لاستخدام المسترد
text_splitter = CharacterTextSplitter ( حجم قطعة = 1000 , Chunk_overlap = 0 )
النصوص = text_splitter.split_documents ( وثائق )

قم بتطبيق طريقة OpenAIEmbeddings() التي يمكن استيرادها من LangChain:

من langchain.embeddings قم باستيراد OpenAIEmbeddings
embeddings = OpenAIEembeddings ( )

استخدم متجر chromadb لتخزين التضمينات التي تم إنشاؤها من المستند:

من langchain.vectorstores استيراد Chroma
ديسيبل = Chroma.from_documents ( النصوص، التضمينات )

الخطوة 6: اختبار المسترد
بمجرد إنشاء التضمينات وتخزينها في قاعدة البيانات، ما عليك سوى تحديد متغير المسترد:

المسترد = db.as_retriever ( )

استدعاء السلاسل باستخدام طريقة RetrievalQA() مع وظيفة OpenAI() والمسترد كوسيطاتها:

qa = RetrievalQA.from_chain_type ( LLM =OpenAI ( ) , chain_type = 'أشياء' , المسترد =المسترد )

توفير المدخلات لاختبار المسترد باستخدام استفسار المتغير داخل طريقة qa.run() :

الاستعلام = 'ماذا قال الرئيس زيلينسكي في خطابه'
qa.run ( استفسار )

ببساطة قم بتخصيص VectorstoreIndexCreator () باستخدام وسيطاتها لتعيين قيم مختلفة:

Index_creator = VectorstoreIndexCreator (
Vectorstore_cls = كروما،
التضمين =OpenAIEmbeddings ( ) ,
text_splitter =CharacterTextSplitter ( حجم قطعة = 1000 , Chunk_overlap = 0 )
)

هذا هو كل ما يتعلق بعملية البدء مع المستردين في LangChain.

خاتمة

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