سيوضح هذا المنشور عملية استخدام المستردات في 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: تحميل مجموعة البيانات
الآن قم بتنفيذ الكود التالي ثم اضغط على 'اختر الملفات' زر وقم بتحميل المستند أو الملف من النظام المحلي:
تم الرفع = files.upload ( )
الخطوة 3: استيراد المكتبات
قم باستيراد المكتبات المطلوبة لبناء واستخدام المستردات في LangChain مثل ' قائمة '،' عمليات الاسترجاعات '، و أكثر من ذلك بكثير:
من كتابة استيراد أي قائمة
من langchain.schema مستند الاستيراد
من langchain.callbacks.manager استيراد عمليات الاسترجاعات
الخطوة 4: إنشاء إنشاء فهرس سطر واحد
تقوم هذه الخطوة بإنشاء فهرس للمسترد الذي يمكن استخدامه للحصول على البيانات لتشكيل مخزن المتجهات عن طريق استيراد المكتبات المطلوبة:
من 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 قم باستيراد OpenAIEmbeddingsembeddings = OpenAIEembeddings ( )
استخدم متجر chromadb لتخزين التضمينات التي تم إنشاؤها من المستند:
من langchain.vectorstores استيراد Chromaديسيبل = Chroma.from_documents ( النصوص، التضمينات )
الخطوة 6: اختبار المسترد
بمجرد إنشاء التضمينات وتخزينها في قاعدة البيانات، ما عليك سوى تحديد متغير المسترد:
استدعاء السلاسل باستخدام طريقة 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.