...
/استرجاع المستندات الأصلية (PDR): هيكلة البيانات الهرمية
استرجاع المستندات الأصلية (PDR): هيكلة البيانات الهرمية
تعرف على تقنية استرجاع المستند الأصلي (PDR)، وكيفية عملها، وكيفية تنفيذها خطوة بخطوة.
سنغطي ما يلي...
في RAG، يُعدّ استرجاع مستندات المصدر ذات الصلة بفعالية أمرًا بالغ الأهمية لإنشاء استجابات عالية الجودة وغنية بالمعلومات. غالبًا ما تعمل أساليب RAG القياسية على أجزاء نصية أصغر، مما قد لا يوفر سياقًا كافيًا للاستعلامات المعقدة. يعالج استرجاع المستندات الأصلية (PDR) هذا القيد من خلال استرجاع المستندات الأصلية الكاملة المرتبطة بالفقرات الفرعية الأكثر صلة. يعزز هذا النهج قدرة RAG على التعامل مع الأسئلة المعقدة التي تتطلب فهمًا أوسع للمادة المصدرية.
ما هو استرجاع الوثيقة الأصلية (PDR)؟
استرجاع المستندات الأصلية (PDR) هي تقنية تُستخدم في نماذج RAG المتقدمة لاسترجاع المستندات الأصلية كاملةً، والتي تُشتق منها المقاطع الفرعية ذات الصلة. تُحسّن عملية الاسترجاع هذه السياق المتاح لنموذج RAG، مما يؤدي إلى استجابات أكثر شمولاً وإثراءً بالمعلومات، خاصةً للاستعلامات المعقدة أو الدقيقة.
فيما يلي الخطوات الأساسية لاسترجاع المستند الرئيسي في نماذج RAG:
معالجة البيانات مسبقًا: تقسيم المستندات الكبيرة إلى أجزاء أصغر.
إنشاء التضمينات: تحويل كل جزء إلى تمثيل رقمي للبحث الفعال.
استعلام المستخدم: يقوم المستخدم بإرسال سؤال.
استرجاع القطعة: ابحث عن القطع الأكثر صلة استنادًا إلى تضمين الاستعلام.
تحديد المستندات الأصلية: ابحث عن المستندات الأصلية (أو الأجزاء الأكبر) للأجزاء المختصرة.
استرداد المستندات الأصلية: احصل على المستندات الأصلية الكاملة للحصول على سياق أفضل.
التنفيذ خطوة بخطوة
وفيما يلي الخطوات اللازمة لتنفيذ ذلك:
1. تحضير البيانات
سنبدأ بإعداد البيئة والبيانات اللازمة لاسترجاع المستند الرئيسي (PDR) في نظام RAG الخاص بنا.
i) استيراد الوحدات اللازمة
بعد ذلك، سنقوم باستيراد الوحدات المطلوبة من المكتبات المثبتة بناء نظام PDR الخاص بنا:
from langchain.schema import Documentfrom langchain.vectorstores import Chromafrom langchain.retrievers import ParentDocumentRetrieverfrom langchain.chains import RetrievalQAfrom langchain_openai import OpenAIfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.storage import InMemoryStorefrom langchain.document_loaders import TextLoaderfrom langchain.embeddings.openai import OpenAIEmbeddings
تعتبر هذه المكتبات والوحدات ضرورية للخطوات اللاحقة في العملية.
ii) إعداد مفتاح API OpenAI
نستخدم OpenAI LLM لتوليد الاستجابات، لذا سنحتاج إلى مفتاح API OpenAI . اضبط متغير البيئة OPENAI_API_KEY
باستخدام مفتاح:
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] = "" # Add your OpenAI API keyif OPENAI_API_KEY == "":raise ValueError("Please set the OPENAI_API_KEY environment variable")
شرح الكود
السطر ١: اضبط متغير
OPENAI_API_KEY
على سلسلة فارغة، ثم عيّنه إلى متغير البيئةOPENAI_API_KEY
باستخدامos.environ
. هنا، يجب إضافة مفتاح OpenAI API الخاص بك.السطران ٢-٣: إذا كان مفتاح
OPENAI_API_KEY
لا يزال سلسلة نصية فارغة بعد التعيين، فسيتم رفعValueError
مع الرسالة"Please set the OPENAI_API_KEY environment variable"
. هذا يضمن ضبط مفتاح API بشكل صحيح قبل متابعة تنفيذ البرنامج.
iii) تحديد وظيفة تضمين النص
سنستخدم تضمينات OpenAI ...