...

/

استرجاع المستندات الأصلية (PDR): هيكلة البيانات الهرمية

استرجاع المستندات الأصلية (PDR): هيكلة البيانات الهرمية

تعرف على تقنية استرجاع المستند الأصلي (PDR)، وكيفية عملها، وكيفية تنفيذها خطوة بخطوة.

سنغطي ما يلي...

في RAG، يُعدّ استرجاع مستندات المصدر ذات الصلة بفعالية أمرًا بالغ الأهمية لإنشاء استجابات عالية الجودة وغنية بالمعلومات. غالبًا ما تعمل أساليب RAG القياسية على أجزاء نصية أصغر، مما قد لا يوفر سياقًا كافيًا للاستعلامات المعقدة. يعالج استرجاع المستندات الأصلية (PDR) هذا القيد من خلال استرجاع المستندات الأصلية الكاملة المرتبطة بالفقرات الفرعية الأكثر صلة. يعزز هذا النهج قدرة RAG على التعامل مع الأسئلة المعقدة التي تتطلب فهمًا أوسع للمادة المصدرية.

ما هو استرجاع الوثيقة الأصلية (PDR)؟

استرجاع المستندات الأصلية (PDR) هي تقنية تُستخدم في نماذج RAG المتقدمة لاسترجاع المستندات الأصلية كاملةً، والتي تُشتق منها المقاطع الفرعية ذات الصلة. تُحسّن عملية الاسترجاع هذه السياق المتاح لنموذج RAG، مما يؤدي إلى استجابات أكثر شمولاً وإثراءً بالمعلومات، خاصةً للاستعلامات المعقدة أو الدقيقة.

فيما يلي الخطوات الأساسية لاسترجاع المستند الرئيسي في نماذج RAG:

  • معالجة البيانات مسبقًا: تقسيم المستندات الكبيرة إلى أجزاء أصغر.

  • إنشاء التضمينات: تحويل كل جزء إلى تمثيل رقمي للبحث الفعال.

  • استعلام المستخدم: يقوم المستخدم بإرسال سؤال.

  • استرجاع القطعة: ابحث عن القطع الأكثر صلة استنادًا إلى تضمين الاستعلام.

  • تحديد المستندات الأصلية: ابحث عن المستندات الأصلية (أو الأجزاء الأكبر) للأجزاء المختصرة.

  • استرداد المستندات الأصلية: احصل على المستندات الأصلية الكاملة للحصول على سياق أفضل.

Press + to interact
High-level overview of parent document retrieval (PDR)
High-level overview of parent document retrieval (PDR)

التنفيذ خطوة بخطوة

وفيما يلي الخطوات اللازمة لتنفيذ ذلك: LangChain هو إطار عمل مفتوح المصدر مصمم لتبسيط تطوير التطبيقات التي تستخدم نماذج اللغة الكبيرة (LLMs). استرجاع الوثيقة الأصلية (PDR):

Press + to interact
Steps for implementing PDR
Steps for implementing PDR

1. تحضير البيانات

سنبدأ بإعداد البيئة والبيانات اللازمة لاسترجاع المستند الرئيسي (PDR) في نظام RAG الخاص بنا.

i) استيراد الوحدات اللازمة

بعد ذلك، سنقوم باستيراد الوحدات المطلوبة من المكتبات المثبتة بناء نظام PDR الخاص بنا:

Press + to interact
from langchain.schema import Document
from langchain.vectorstores import Chroma
from langchain.retrievers import ParentDocumentRetriever
from langchain.chains import RetrievalQA
from langchain_openai import OpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.storage import InMemoryStore
from langchain.document_loaders import TextLoader
from langchain.embeddings.openai import OpenAIEmbeddings

تعتبر هذه المكتبات والوحدات ضرورية للخطوات اللاحقة في العملية.

ii) إعداد مفتاح API OpenAI

نستخدم OpenAI LLM لتوليد الاستجابات، لذا سنحتاج إلى مفتاح API OpenAI . اضبط متغير البيئة OPENAI_API_KEY باستخدام مفتاح:

Press + to interact
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] = "" # Add your OpenAI API key
if 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 ...