تنفيذ RAG على ملفات PDF باستخدام البحث في الملفات في واجهة برمجة تطبيقات Responses

في عالم الذكاء الاصطناعي، تعد القدرة على البحث واسترجاع المعلومات بكفاءة من مستندات PDF أمراً لا يقدر بثمن. تبسط واجهة برمجة تطبيقات Responses، مع ميزة البحث في الملفات، عملية التوليد المعزز بالاسترجاع (RAG)، مما يجعلها أكثر سهولة وأقل تعقيداً. يرشدك هذا المقال خلال الخطوات اللازمة لتنفيذ RAG على ملفات PDF باستخدام واجهة برمجة تطبيقات Responses.
إعداد بيئتك
قبل الغوص في التنفيذ، تأكد من إعداد بيئتك بشكل صحيح. ثبّت حزم Python المطلوبة:
pip install PyPDF2 pandas tqdm openai -qإنشاء مخزن متجهات
الخطوة الأولى تتضمن إنشاء مخزن متجهات على واجهة برمجة تطبيقات OpenAI وتحميل ملفات PDF الخاصة بك إليه. تتضمن هذه العملية قراءة ملفات PDF، وفصل المحتوى إلى أجزاء، وتشغيل التضمينات على هذه الأجزاء، وتخزينها في مخزن المتجهات.
from openai import OpenAI
from concurrent.futures import ThreadPoolExecutor
from tqdm import tqdm
import concurrent
import PyPDF2
import os
import pandas as pd
import base64
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))تحميل ملفات PDF إلى مخزن المتجهات
مع إعداد البيئة، الخطوة التالية هي تحميل ملفات PDF إلى مخزن المتجهات. يتضمن هذا قراءة كل ملف PDF، واستخراج النص، وتحميل أجزاء النص إلى مخزن المتجهات.
def upload_single_pdf(file_path: str, vector_store_id: str):
file_name = os.path.basename(file_path)
try:
file_response = client.files.create(file=open(file_path, 'rb'), purpose="assistants")
attach_response = client.vector_stores.files.create(
vector_store_id=vector_store_id,
file_id=file_response.id
)
return {"file": file_name, "status": "success"}
except Exception as e:
print(f"خطأ مع {file_name}: {str(e)}")
return {"file": file_name, "status": "failed", "error": str(e)}الاستعلام في مخزن المتجهات
بمجرد تحميل ملفات PDF، يمكنك الاستعلام في مخزن المتجهات لاسترجاع المحتوى ذي الصلة بناءً على استعلامات محددة. هذا هو المكان الذي تتألق فيه قوة RAG حقاً، مما يتيح استرجاع المعلومات بكفاءة.
query = "ما هو البحث العميق؟"
search_results = client.vector_stores.search(
vector_store_id=vector_store_details['id'],
query=query
)دمج نتائج البحث مع نموذج اللغة الكبير
لتعزيز فائدة المعلومات المسترجعة بشكل أكبر، يمكنك دمج نتائج البحث مع نموذج تعلم اللغة (LLM) في استدعاء واجهة برمجة تطبيقات واحد. يسمح هذا التكامل السلس باستعلامات وردود أكثر تطوراً.
response = client.responses.create(
input= query,
model="gpt-4o-mini",
tools=[{
"type": "file_search",
"vector_store_ids": [vector_store_details['id']],
}]
)تقييم الأداء
تقييم أداء تنفيذ RAG الخاص بك أمر بالغ الأهمية. يتضمن هذا توليد مجموعة بيانات تقييم، وحساب مقاييس مختلفة، وضمان صلة وجودة المعلومات المسترجعة.
def generate_questions(pdf_path):
text = extract_text_from_pdf(pdf_path)
prompt = (
"هل يمكنك توليد سؤال لا يمكن الإجابة عليه إلا من هذا المستند؟:\n"
f"{text}\n\n"
)
response = client.responses.create(
input=prompt,
model="gpt-4o",
)
question = response.output[0].content[0].text
return questionباتباع هذه الخطوات، يمكنك تنفيذ نظام RAG قوي باستخدام واجهة برمجة تطبيقات Responses، مما يبسط بشكل كبير عملية البحث واسترجاع المعلومات من مستندات PDF.
المرجع: OpenAI Blog بواسطة Pierre-Antoine Porte
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.
مقالات ذات صلة

إنشاء بودكاست من ملف PDF باستخدام Vercel AI SDK و LangChain
تعلم كيفية إنشاء بودكاست من ملف PDF باستخدام Vercel AI SDK و PDFLoader من LangChain و ElevenLabs و Next.js.

تضمين مقالات ويكيبيديا للبحث
دليل حول تحضير مقالات ويكيبيديا للبحث باستخدام التضمينات.
تعزيز كفاءة خدمة العملاء: الاستفادة من استدعاءات الأدوات الإلزامية في ChatCompletion
اكتشف كيف يمكن لاستدعاءات الأدوات الإلزامية في ChatCompletion تعزيز كفاءة خدمة العملاء من خلال توفير ردود متسقة وسير عمل مبسط.