...
/استراتيجيات الاسترجاع: المستردون
استراتيجيات الاسترجاع: المستردون
تعرف على كيفية استرداد أجزاء البيانات ذات الصلة من مخازن المتجهات.
سنغطي ما يلي...
لنبدأ بدمج مُسترجعات LangChain. في جميع التمارين التالية، سنُعرّف استعلام المستخدم على أنه "استعلام = من هو آلان تورينج؟"
المسترد المدعوم من متجر المتجهات
يستخدم مسترد مخزن المتجهات تخزين المتجهات لجلب المستندات من خلال عمليات البحث عن التشابه، وتغليف قدرات مخزن المتجهات في واجهة المسترد لمعالجة الاستعلامات بسلاسة.
# Define a retriever and retrieve the relevant documentsretriever = db.as_retriever(search_kwargs={"k": 5})docs = retriever.invoke(query)# Print the outputprint('Relevant documents:')print('-'*80)for idx, doc in enumerate(docs):print(f'Relevant text {idx+1}: {doc.page_content}')print('-'*80)
في هذا الكود نقوم بالخطوات التالية:
السطرين 1-2 : نقوم بتهيئة كائن استرداد من مخزن المتجهات الموجود (db) باستخدام معلمات بحث محددة حيث k=5 مما يعني أنه سيتم استرداد أفضل 5 أجزاء متشابهة.
السطر 3 : نقوم بتنفيذ استرجاع استعلام المستخدم والحصول على المستندات ذات الصلة.
الأسطر 5-10 : نقوم بطباعة المستندات المسترجعة والمحتوى ذي الصلة بكل منها.
وسيكون إخراج على النحو التالي:
الوثائق ذات الصلة:
--------------------------------------------------------------------------------
النص ذو الصلة 1: كان تورينج عالم رياضيات ومنطق وعلوم كمبيوتر بريطانيًا
--------------------------------------------------------------------------------
النص ذو الصلة 2: التقدم.
مساهمات آلان تورينج في العلوم والتكنولوجيا
--------------------------------------------------------------------------------
النص ذو الصلة 3: العمل على فك شفرة إنجما خلال الحرب العالمية الثانية. تورينج
--------------------------------------------------------------------------------
النص ذو الصلة 4: أبو علوم الكمبيوتر الحديثة وهو معروف بعمله
--------------------------------------------------------------------------------
النص ذو الصلة 5: الذكاء.
العمل الأساسي لألان تورينج، الذي تعمق في
--------------------------------------------------------------------------------
يقوم المسترد باسترجاع الجمل الأكثر صلة بالاستعلام.
مُسترجع الاستعلامات المتعددة
MultiQueryRetriever
يتعامل هذا البرنامج مع الفروق الدقيقة في صياغة الاستعلامات والتعقيدات الدلالية من خلال توليد مناظير متعددة للاستعلامات باستخدام برنامج ماجستير في إدارة الأعمال. ويُؤتمت البرنامج عملية ضبط الاستجابة الفورية باستخدام برنامج ماجستير في إدارة الأعمال لتوليد استعلامات متعددة من مناظير مختلفة لاستعلام إدخال من المستخدم. لكل استعلام، يسترجع البرنامج مجموعة من البيانات ذات الصلة، ويأخذ الاتحاد الفريد بين جميع الاستعلامات للحصول على مجموعة أكبر من البيانات ذات الصلة المحتملة.
from langchain.retrievers.multi_query import MultiQueryRetriever# Define a retriever and retrieve the relevant documentsretriever = db.as_retriever()llm_retriever = MultiQueryRetriever.from_llm(retriever=retriever, llm=llm)docs = llm_retriever.invoke(query)# Print the outputfor idx, doc in enumerate(docs):print(f'Relevant text {idx+1}: {doc.page_content}')print('-'*80)
في هذا الكود نقوم بالخطوات التالية:
السطر 1 ...