جدول المحتويات
- 1. ما هو RAG - Retrieval-Augmented Generation
- 2. لماذا نحتاج RAG - 3 حدود لـ LLM وحده
- 3. آلية العمل - RAG في 3 خطوات
- 4. المكونات الرئيسية لـ RAG
- 5. ما هي قاعدة بيانات المتجهات
- 6. أبرز الاستخدامات - أين يُستعمل RAG
- 7. RAG مقابل الضبط الدقيق - أيهما تختار
- 8. طريقة التنفيذ - بناء RAG بـ LangChain
- 9. تحديات RAG وحلولها
- 10. قائمة بأبرز الأدوات والخدمات
- الأسئلة الشائعة
"أريد أن يقرأ ChatGPT لائحة العمل في شركتي ويجيب تلقائياً على أسئلة الموظفين"، "أريده أن يبحث في أحدث قواعد بيانات الأبحاث ويلخصها" - هذه احتياجات تتزايد بسرعة. لكن بيانات تدريب ChatGPT متوقفة عند نقطة زمنية في الماضي، ولا يمكن أن نسلّم وثائق سرية للشركة لـ AI ليتعلم منها مباشرة.
التقنية التي تحل هذه المشكلة هي RAG (Retrieval-Augmented Generation / التوليد المعزز بالاسترجاع). أصبحت منذ 2023 إحدى أهم الكلمات المفتاحية في تبني المؤسسات للـ AI، حتى ميزات "Custom GPTs" و "Projects" في ChatGPT تستخدم RAG داخلياً.
في هذا المقال نشرح آلية RAG في 3 خطوات بالرسوم، ونغطي قواعد بيانات المتجهات وتنفيذ LangChain والفرق عن الضبط الدقيق بأسلوب يفهمه المبتدئ ويحافظ في الوقت ذاته على الدقة التقنية.
1. ما هو RAG - Retrieval-Augmented Generation
RAG (Retrieval-Augmented Generation) تعني حرفياً "توليد (Generation) معزز (Augmented) بـالاسترجاع (Retrieval)". وتُترجم بالعربية إلى "التوليد المعزز بالاسترجاع".
وباختصار، هي "آلية يقوم فيها LLM (نموذج اللغة الكبير) قبل تكوين الجواب بالبحث عن معلومات ذات صلة من قاعدة بيانات خارجية، ثم يولّد الجواب مستعيناً بنتائج البحث".
تشبيه بالطبخ
الـ LLM وحده يشبه "طاهياً يطبخ بالاعتماد على ذاكرته فقط". مهما كان ماهراً، فلن يستطيع طبخ وصفة لا يعرفها، ولن يعرف ما يحتويه ثلاجتك.
أما RAG فهو آلية "تعطي الطاهي كتاب وصفات وتخبره بمحتوى الثلاجة قبل أن يطبخ". الطاهي يستطيع حينها بالرجوع إلى الكتاب أن يطبخ أفضل طبق ممكن من المكونات المتوفرة.
أدوار "Retrieval" و "Augmented" و "Generation"
| المصطلح | المعنى | الدور في RAG |
|---|---|---|
| Retrieval | الاسترجاع / البحث | استخراج الوثائق ذات الصلة بالسؤال من قاعدة البيانات |
| Augmented | التعزيز / الإضافة | إضافة المعلومات المسترجعة إلى الموجه ثم تمريرها للـ LLM |
| Generation | التوليد | يولّد LLM الجواب بالاستناد إلى نتائج البحث |
النقطة الجوهرية أنه لا يُعاد تدريب LLM ذاته، بل تُمرّر له "المعرفة اللازمة" من الخارج عند كل سؤال جديد. هذا هو الفرق الجوهري عن الضبط الدقيق الذي سنناقشه لاحقاً.
2. لماذا نحتاج RAG - 3 حدود لـ LLM وحده
هناك ثلاث مشاكل لا يستطيع LLM وحده مثل ChatGPT أو Claude حلها.
الحد 1: قطع المعرفة (طزاجة المعلومات)
الـ LLM يُدرَّب على "بيانات حتى نقطة زمنية معينة"، فلا يعرف أحدث المعلومات بعد التدريب. مثلاً، الإصدار الأول من GPT-4 كانت لديه معلومات حتى أبريل 2023 فقط.
- "أخبرني عن المنتج الجديد الذي أُعلن عنه أمس" ← لا يستطيع الإجابة
- "ما تفاصيل التعديل القانوني الصادر الأسبوع الماضي؟" ← لا يستطيع الإجابة
- "ما سعر الصرف اليوم؟" ← لا يستطيع الإجابة
مع RAG يمكن جلب المعلومات من أحدث الأخبار وقواعد البيانات والـ API ثم الإجابة.
الحد 2: الهلوسة (كذب يبدو منطقياً)
الـ LLM يميل إلى تكوين أجوبة تبدو صحيحة حتى عند سؤاله عما لا يعرف. يُسمى ذلك بالهلوسة (Hallucination).
مثال: تسأله "كم يوم إجازة سنوية في شركتنا؟" فيجيب رغم جهله: "عادةً بين 10 و 20 يوماً". هذا غير صالح للاستخدام الفعلي.
مع RAG يبحث في وثيقة لائحة العمل الفعلية ويرجع إليها، فتحصل على إجابة مبنية على دليل. بل يمكن إضافة "في أي وثيقة وفي أي صفحة" كمصدر.
الحد 3: عدم الوصول للبيانات الداخلية والخاصة
لا تتضمن بيانات تدريب LLM أدلة شركتك وعقودك وبيانات عملائك. ولا يمكن من جهة أخرى تسليم هذه المعلومات السرية للـ LLM ليتعلم منها (لمخاطر التسرب وتكاليف ضخمة).
مع RAG يمكن حفظ الوثائق الداخلية في قاعدة متجهات خاصة بشركتك، وعند ورود سؤال يُستخرج الجزء المتعلق فقط ويُمرَّر إلى LLM، ما يعني إمكانية استخدام البيانات الداخلية مع الحفاظ على الأمان.
3. آلية العمل - RAG في 3 خطوات
عمل RAG يُقسَّم إلى مرحلتين: "تحضير مسبق (بناء الفهرس)" و "التشغيل (الإجابة على الأسئلة)".
مرحلة التحضير - تحويل الوثائق إلى متجهات وحفظها
- جمع الوثائق: PDF و Word و HTML و Markdown وغيرها
- تقسيم المقاطع: تجزئة الوثيقة إلى أجزاء بطول مناسب (مثلاً 500-1000 حرف)
- التضمين (Embedding): تمرير كل مقطع عبر نموذج تضمين (مثل text-embedding-3-small من OpenAI) لتحويله إلى متجه (مصفوفة أرقام) من 1536 بُعداً مثلاً
- الحفظ في قاعدة المتجهات: تخزين المقاطع ومتجهاتها في قاعدة متخصصة (Pinecone، Qdrant، إلخ)
تُنفذ هذه العملية عند إضافة وثائق جديدة أو تحديث القائمة.
مرحلة التشغيل - 3 خطوات للإجابة على الأسئلة
عند ورود سؤال من المستخدم تكون المعالجة كالآتي.
- الخطوة 1: Retrieval (الاسترجاع)
- تحويل نص السؤال إلى متجه بنفس نموذج التضمين
- جلب أعلى K مقطع (عادةً 3-10) من قاعدة المتجهات تكون "الأقرب لمتجه السؤال"
- يُحسب القرب عبر تشابه جيب التمام (Cosine similarity) أو غيره
- الخطوة 2: Augmented (التعزيز)
- تضمين المقاطع المسترجعة في الموجه باعتبارها "معلومات مرجعية"
- بصيغة مثل: "بناءً على المعلومات التالية أجب على السؤال: [نتائج البحث] السؤال: [سؤال المستخدم]"
- الخطوة 3: Generation (التوليد)
- يولّد LLM (GPT-4، Claude، Gemini وغيرها) الإجابة بناءً على المعلومات المرجعية
- يمكن إرفاق "أي وثيقة استُخدمت" كمصدر عند الحاجة
مثال عملي: سؤال ChatGPT عن لائحة العمل الداخلية
تدفق سؤال "كم يوم إجازة سنوية لدينا؟":
- يُحوَّل السؤال إلى متجه عبر نموذج التضمين ← [0.12, -0.45, 0.78, ...]
- يُجلَب 3 مقاطع متعلقة بـ "إجازة" و "إجازة سنوية" من قاعدة المتجهات
- المقاطع المسترجعة: "المادة 15: الإجازة السنوية المدفوعة - يُمنح الموظف الذي مر على تعيينه 6 أشهر 10 أيام...", "حسب سنوات الخدمة تصل إلى 20 يوماً..." إلخ
- تركيب الموجه: "معلومات مرجعية: المادة 15... السؤال: كم يوم إجازة سنوية؟"
- إجابة LLM: "10 أيام بعد 6 أشهر من التعيين، وحسب سنوات الخدمة تصل إلى 20 يوماً (انظر المادة 15 من لائحة العمل)"
4. المكونات الرئيسية لـ RAG
سنستعرض المكونات الخمس التي يتكون منها RAG.
أولاً: نموذج التضمين (Embedding Model)
نموذج AI يحوّل النصوص إلى متجهات رقمية. مدرَّب على أن تكون "النصوص المتقاربة دلالياً قريبة في فضاء المتجهات".
| النموذج | المزود | الميزات |
|---|---|---|
| text-embedding-3-small | OpenAI | منخفض التكلفة وعالي الأداء، 1536 بُعداً |
| text-embedding-3-large | OpenAI | دقة أعلى، 3072 بُعداً |
| voyage-3 | Voyage AI | توصية Anthropic، دقة عالية |
| Cohere Embed v3 | Cohere | متعدد اللغات، يُجيد العربية |
| multilingual-e5-large | Microsoft (OSS) | قابل للتشغيل المحلي، مجاني |
| BGE-M3 | BAAI (OSS) | يدعم 100+ لغة، الأفضل في الـ OSS |
ثانياً: قاعدة بيانات المتجهات
قاعدة متخصصة في حفظ كميات ضخمة من المتجهات والبحث السريع عن "المتجهات القريبة". التفاصيل في القسم التالي.
ثالثاً: محرك البحث (Retriever)
إضافة إلى البحث عبر المتجهات، كثيراً ما يُدمج البحث بالكلمات المفتاحية (BM25 وغيره) أو بحث هجين.
رابعاً: LLM (للتوليد)
نموذج اللغة الكبير الذي يصنع الجواب النهائي. مثل GPT-4 و Claude و Gemini و Llama 3. يعمل مع APIs تجارية أو نماذج OSS محلية.
خامساً: قالب الموجه (Prompt Template)
قالب لدمج نتائج البحث وسؤال المستخدم وتمريرهما إلى LLM. عنصر حاسم لدقة RAG.
أنت مساعد متخصص في اللوائح الداخلية.
أجب على السؤال بناءً على المعلومات المرجعية التالية فقط.
إن لم تتوفر إجابة في المعلومات المرجعية أجب بـ "لا تتوفر معلومات".
[المعلومات المرجعية]
{retrieved_chunks}
[السؤال]
{user_question}
[الإجابة]
5. ما هي قاعدة بيانات المتجهات
قاعدة المتجهات تختلف عن قواعد البيانات العلائقية التقليدية (مثل MySQL)، إذ تتخصص في "البحث السريع عن أقرب جار (المتجه الأشبه) في فضاء متجهات عالي الأبعاد".
مقارنة أبرز قواعد المتجهات
| القاعدة | النوع | الميزات | السعر |
|---|---|---|---|
| Pinecone | SaaS مدارة | المعيار في الصناعة، إعداد فائق السهولة | حصة مجانية، من 70$ شهرياً |
| Weaviate | OSS + سحابة | GraphQL API، بحث هجين | OSS مجانية، SaaS من 25$ |
| Qdrant | OSS + سحابة | مكتوبة بـ Rust وسريعة، تصفية قوية | OSS مجانية، SaaS بحصة مجانية |
| Chroma | OSS | خفيفة، استخدام فوري عبر Python | مجانية (استضافة ذاتية) |
| pgvector | إضافة لـ PostgreSQL | تعمل على PostgreSQL القائم | مجانية (إضافة OSS) |
| Milvus | OSS + سحابة | للنطاقات الكبيرة، تتحمل مليارات المتجهات | OSS مجانية، Zilliz Cloud |
| Elasticsearch | محرك بحث | يدعم بحث المتجهات، تكامل مع التشغيل القائم | OSS مجانية، نسخ مدارة متاحة |
| Vertex AI Vector Search | Google Cloud | تكامل مع منظومة GCP | فوترة بالاستخدام |
أيها نختار
- للتجربة السريعة: Chroma (تعمل فوراً عبر pip install)
- الاستفادة من PostgreSQL القائم: pgvector (يجمع قواعد البيانات في مكان واحد)
- إنتاج بأقل عبء تشغيلي: Pinecone (دون إعداد)
- تشغيل OSS احترافي: Qdrant أو Weaviate
- نطاق ضخم بمئات الملايين أو المليارات: Milvus
وللاطلاع على اختيار جهة الاستضافة يمكن مراجعة مقارنة بين PaaS (مثل Vercel) والاستضافة المشتركة و VPS والسحابة.
6. أبرز الاستخدامات - أين يُستعمل RAG
RAG منذ 2023 من أكثر التقنيات تبنياً في الـ AI المؤسسي. نعرض أبرز الاستخدامات.
الاستخدام 1: QA الوثائق الداخلية (قاعدة المعرفة)
تحويل لائحة العمل وأدلة الإجراءات والمواصفات الفنية ومحاضر الاجتماعات وعروض المبيعات إلى RAG، ليتمكن الموظفون من السؤال بأسلوب ChatGPT. حتى Microsoft 365 Copilot يستعمل RAG على وثائق SharePoint.
الاستخدام 2: أتمتة دعم العملاء
تحويل FAQ وسجل الدعم إلى RAG، وأتمتة الرد الأولي عبر روبوت دردشة. يتفرغ المشغل البشري للاستفسارات المعقدة.
الاستخدام 3: أسئلة وأجوبة المعرفة المتخصصة (قانوني وطبي)
تحويل قواعد بيانات السوابق القضائية والأبحاث الطبية وإرشادات العلاج إلى RAG. نظام يستعين به المحامون والأطباء يومياً. إظهار المصدر يجعله مناسباً للمجالات التي تتطلب سند للدليل.
الاستخدام 4: البحث في الأبحاث العلمية وتلخيصها
تحويل قواعد بيانات الأبحاث مثل arXiv و PubMed و Google Scholar إلى RAG، والإجابة على أسئلة كـ "ما أحدث اتجاهات هذا المجال البحثي؟" أو "ما الأبحاث المشابهة لطريقة XX؟". Elicit و Perplexity مشهوران بذلك.
الاستخدام 5: بحث المنتجات و FAQ في مواقع التجارة الإلكترونية
RAG يدمج أدلة المنتج والمراجعات وسياسات الإرجاع. يمكّن من البحث بلغة طبيعية مثل "هل هذه المكنسة مناسبة لشعر الحيوانات الأليفة؟"
الاستخدام 6: محادثة وثائق المطورين
تحويل التوثيق الرسمي للمكتبات إلى RAG، والإجابة على أسئلة كـ "أريد كتابة كذا في AWS Lambda، فما الكود النموذجي؟". Stripe و Vercel و Supabase وغيرها يتبنونه.
الاستخدام 7: البحث وشرح قواعد الكود الداخلية
تحويل كود GitHub إلى RAG لأداة تخدم المطورين بأسئلة كـ "كيف أستخدم هذه الدالة؟" أو "ما الملفات التي تطبّق منطقاً مشابهاً؟". GitHub Copilot Chat و أدوات تطوير AI مثل Cursor و Claude Code تستخدم أساليب مشابهة لـ RAG داخلياً.
الاستخدام 8: تحسينات AI الجديدة مثل llms.txt
المعيار llms.txt الذي يجعل AI يقرأ معلومات الويب بشكل صحيح، يتكامل بشكل جيد مع RAG، ويتيح لمشغلي المواقع تقديم المعلومات بشكل مهيكل ليقرأها AI.
7. RAG مقابل الضبط الدقيق - أيهما تختار
إلى جانب RAG، يُناقش غالباً الضبط الدقيق (Fine-tuning) كطريقة "لتزويد LLM بمعرفة خاصة". النهجان مختلفان جذرياً.
الفرق الجوهري
| المعيار | RAG | الضبط الدقيق |
|---|---|---|
| النهج | تمرير المعلومات من الخارج وقت التشغيل | إعادة تدريب النموذج مسبقاً |
| تحديث المعرفة | تحديث القاعدة فقط (فوري) | يلزم إعادة التدريب (وقت وتكلفة) |
| التكلفة الأولية | منخفضة (بناء قاعدة فقط) | عالية (بيانات تدريب وموارد حوسبة) |
| تكلفة التشغيل | بحث + تكلفة API لـ LLM | الاستدلال فقط (نموذج خاص) |
| الهلوسة | منخفضة (مع وجود مصدر) | متوسطة (يتحدث بناءً على ما تعلّم) |
| إظهار المصدر | ممكن | صعب |
| تعلم الأسلوب واللهجة | ضعيف | قوي |
| دعم البيانات الديناميكية | قوي (يدعم المعلومات اللحظية) | ضعيف (يلزم إعادة تدريب) |
| معالجة البيانات السرية | يمكن إنجازها داخل الشركة | كذلك (لكنها أثقل) |
متى يناسب RAG
- المعرفة تتحدث كثيراً (أخبار، وثائق داخلية، معلومات منتجات)
- الحاجة لإظهار سند الإجابة (قانون، طب، مالية)
- كميات كبيرة من الوثائق (تدريب الكل غير عملي)
- الرغبة في البدء بسرعة (تقليص فترة التطوير)
متى يناسب الضبط الدقيق
- الرغبة في الإجابة بأسلوب أو نبرة محددة (هوية شركة، شخصية)
- تعلم أنماط لغوية متخصصة (مصطلحات طبية، أسلوب قانوني)
- تقليل تكلفة الاستدلال (الموجه يصبح أقصر)
- توفر بيانات تدريب وفيرة مسبقاً
الجمع بينهما هو الأقوى
في الواقع RAG والضبط الدقيق ليسا متعارضين، بل يمكن دمجهما. تعلّم الأسلوب بالضبط الدقيق وتزويد المعرفة الجديدة عبر RAG - هذا التركيب شائع في التشغيل الفعلي.
لكن المبتدئ ينبغي أن يبدأ بـ RAG فهو أبسط بكثير في البناء والتشغيل مقارنة بالضبط الدقيق.
8. طريقة التنفيذ - بناء RAG بـ LangChain
نستعرض أبرز أُطر تنفيذ RAG، ثم نقدم أصغر مثال كود بـ Python.
أبرز الأُطر
| الإطار | اللغة | الميزات |
|---|---|---|
| LangChain | Python / JS | الأكثر انتشاراً، تكاملات وفيرة |
| LlamaIndex | Python | متخصص في توصيل البيانات والفهرسة |
| Haystack | Python | للمؤسسات، تحكم دقيق |
| Semantic Kernel | C# / Python | من Microsoft، تكامل قوي مع .NET |
| DSPy | Python | أتمتة تحسين الموجه |
| تنفيذ ذاتي | أي لغة | RAG البسيط يُكتب في 100 سطر |
أصغر مثال RAG عبر LangChain
نبني RAG يجيب على أسئلة لائحة العمل الداخلية بصيغة PDF عبر LangChain في حوالي 30 سطراً.
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_community.vectorstores import Chroma
from langchain.chains import RetrievalQA
# 1. تحميل الوثيقة
loader = PyPDFLoader("kisoku.pdf")
docs = loader.load()
# 2. تقسيم المقاطع
splitter = RecursiveCharacterTextSplitter(
chunk_size=500, chunk_overlap=50
)
chunks = splitter.split_documents(docs)
# 3. التضمين + بناء قاعدة المتجهات
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = Chroma.from_documents(chunks, embeddings)
# 4. بناء سلسلة RAG
llm = ChatOpenAI(model="gpt-4o-mini")
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=vectorstore.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True,
)
# 5. السؤال
result = qa.invoke({"query": "كم يوم إجازة سنوية؟"})
print(result["result"])
print("المصدر:", [d.metadata for d in result["source_documents"]])
عند تنفيذ هذا الكود، يبحث في ملف PDF لائحة العمل عن الأجزاء ذات الصلة، ويولّد GPT-4o-mini الإجابة. يمكن أيضاً الحصول على رقم الصفحة المرجعية، ما يتيح الإجابة للمستخدم بسند مثل "بالرجوع إلى المادة 15".
التنفيذ الإنتاجي يتضمن
- تحسين تقسيم المقاطع (تقسيم دلالي، مقاطع هرمية، إلخ)
- البحث الهجين (دمج البحث بالمتجهات مع كلمات BM25)
- إعادة الترتيب (Cohere Rerank و voyage-rerank لإعادة ترتيب نتائج البحث)
- إعادة صياغة الاستعلام (HyDE و Multi-Query لتحسين دقة البحث)
- خط أنابيب التقييم (تقييم تلقائي عبر RAGAS)
9. تحديات RAG وحلولها
RAG تقنية قوية لكنها تواجه تحديات في التشغيل الفعلي.
التحدي 1: صعوبة تقسيم المقاطع
دقة البحث تتغير كثيراً حسب طريقة تقسيم الوثيقة. القصير يفقد السياق والطويل يضعف دقة البحث.
الحلول:
- التقسيم الدلالي (التقسيم حسب الوحدات الدلالية)
- إعداد التداخل (تكرار جزئي بين المقاطع المتجاورة)
- المقاطع الهرمية (حفظ بنية أبوية، البحث في الأبناء والإحالة للأب)
التحدي 2: دقة الـ Retrieval (البحث)
اختيار مقاطع تبدو متشابهة لكنها مختلفة، أو فقدان معلومات مهمة، إلخ.
الحلول:
- البحث الهجين (متجهات + كلمات BM25)
- إعادة ترتيب نتائج البحث بنماذج reranking
- توليد استعلامات متعددة (نفس السؤال بصيغ مختلفة)
التحدي 3: قيود طول السياق
هناك حد أقصى لعدد التوكنز التي يقبلها LLM، فلا يمكن تمرير كميات كبيرة من المقاطع.
الحلول:
- تقليص K (أعلى 3-5 مقاطع)
- التلخيص أولاً ثم التمرير
- استخدام LLM ذي سياق طويل (Claude بـ 200K توكن، Gemini بـ 1M وغيرها)
التحدي 4: صعوبة التقييم
القياس الموضوعي لجودة إجابات RAG صعب. كيفية إعداد البيانات الذهبية تحدٍّ في حد ذاته.
الحلول:
- استخدام RAGAS (إطار OSS لتقييم RAG)
- الحساب التلقائي لمؤشرات دقة الإجابة وصلتها بالبحث وأمانتها
- LLM-as-a-Judge (تقييم بـ LLM آخر)
التحدي 5: تعدد اللغات والوسائط
الوثائق بلغات مختلطة وملفات PDF بصور وجداول ورسومات صعبة المعالجة.
الحلول:
- نماذج تضمين متعددة اللغات (BGE-M3 و Cohere Multilingual)
- تحويل الصور والجداول إلى نص مسبقاً عبر LLM (OCR + VLM)
- تضمين متعدد الوسائط (CLIP و Nomic وغيرها)
10. قائمة بأبرز الأدوات والخدمات
نلخص أبرز أدوات بناء RAG حسب الفئة.
الأُطر والمكتبات
- LangChain - الإطار الأكثر انتشاراً
- LlamaIndex - متخصص في توصيل البيانات
- Haystack - للمؤسسات
- DSPy - أتمتة تحسين الموجه
قواعد المتجهات (مدارة)
- Pinecone - المعيار الصناعي
- Weaviate Cloud - يدعم GraphQL
- Qdrant Cloud - أداء عالٍ
- Zilliz Cloud - النسخة المدارة من Milvus
قواعد المتجهات (OSS واستضافة ذاتية)
- Chroma - خفيفة وفورية مع Python
- Qdrant - مكتوبة بـ Rust وسريعة
- Weaviate - النسخة OSS
- Milvus - للنطاقات الكبيرة
- pgvector - إضافة لـ PostgreSQL
نماذج التضمين
- OpenAI text-embedding-3 - الخيار القياسي والاقتصادي
- Voyage AI - توصية Anthropic
- Cohere Embed v3 - متعدد اللغات
- BGE-M3 - OSS عالي الأداء
خدمات RAG بدون كود ومدارة
- ChatGPT Projects / Custom GPTs - ميزة RAG في OpenAI
- Claude Projects - ميزة RAG في Anthropic
- Notion AI - بحث الوثائق داخل Notion
- Microsoft Copilot (Microsoft 365) - بحث عرضي عبر وثائق SharePoint و Teams
- Dify - منصة بناء AI بدون كود مفتوحة المصدر
- Vertex AI Agent Builder - خدمة بناء RAG في Google Cloud
- Amazon Bedrock Knowledge Bases - RAG مدار من AWS
أدوات التقييم
- RAGAS - إطار OSS لتقييم RAG
- TruLens - تقييم تطبيقات LLM عموماً
- LangSmith - تتبع وتقييم رسمي من LangChain
الأسئلة الشائعة
س. هل يمكن استخدام RAG في ChatGPT أيضاً؟
نعم. عند رفع ملفات إلى "Projects" أو "Custom GPTs" في ChatGPT، يعمل داخلياً بآلية RAG (تسميه OpenAI ميزة "File Search"). إن أراد المطور استخدام RAG عبر API، يمكن استخدام أداة "File Search" من OpenAI Assistants API أو بناؤه ذاتياً عبر LangChain. الأمر ذاته متاح في Claude عبر "Projects".
س. كم تبلغ تكلفة تشغيل RAG؟
تختلف كثيراً حسب النطاق. للأفراد والمشاريع الصغيرة (أقل من 10 آلاف وثيقة وحوالي 1000 استعلام شهرياً) يمكن تجاوز عشرات الدولارات شهرياً باستخدام Chroma + OpenAI API. للنطاق المتوسط (100 ألف وثيقة و 100 ألف استعلام شهرياً) مع Pinecone + GPT-4o قد تصل لـ مئات إلى آلاف الدولارات شهرياً. للمؤسسات الكبيرة قد تتجاوز عشرات آلاف الدولارات شهرياً. المكونات الرئيسية: "API التضمين" و "قاعدة المتجهات" و "API الـ LLM".
س. ما الفرق بين RAG ورفع ملف لـ ChatGPT؟
جوهرياً نفس تقنية "التوليد المعزز بالاسترجاع". ميزة رفع الملفات في ChatGPT يمكن القول إن RAG يعمل داخلياً فيها. الفروقات: (1) ChatGPT يقبل بضعة عشرات الملفات (أكثر بكثير في Projects)، أما RAG الذاتي فيدعم ملايين، (2) ChatGPT صندوق أسود، RAG الذاتي يتحكم بدقة في خوارزميات البحث، (3) ChatGPT على خوادم OpenAI، RAG الذاتي يمكن أن يكون داخلياً بالكامل. للتشغيل الجاد في المؤسسات يبني RAG ذاتي عادةً.
س. هل تختفي الهلوسة تماماً مع RAG؟
لا تختفي تماماً. حتى مع RAG قد تحدث إجابات خاطئة بسبب: (1) عدم استرجاع وثائق ذات صلة، (2) وجود نتائج لكن سوء تفسير LLM لها، (3) تناقض في نتائج البحث. كإجراء وقائي: قيود الموجه مثل "إن لم تكن المعلومة في المرجع أجب 'لا تتوفر معلومات'" وإظهار المصدر والتقييم المستمر بـ RAGAS مهمة. ومع ذلك لن تصل الدقة لـ 100%، لذلك في الاستخدامات الحرجة كالطب والقانون يجب وضع تحقق بشري.
س. كيف ندعم الوثائق العربية؟
دعم العربية يقوم على ثلاث نقاط: (1) استخدام نموذج تضمين متعدد اللغات (OpenAI text-embedding-3 و Cohere Multilingual و BGE-M3 وغيرها)، (2) مراعاة المورفولوجيا العربية وعلامات الترقيم في تقسيم المقاطع، (3) اختيار LLM يجيد العربية (GPT-4o و Claude و Gemini وغيرها). text-embedding-3 من OpenAI يدعم العربية بشكل جيد، لكن للتخصص العربي تكون BGE-M3 و Cohere أعلى دقة.
س. ما الفرق بين RAG والوكيل (AI Agent)؟
RAG آلية ثابتة "تبحث وتصنع جواباً". الوكيل آلية ديناميكية "يختار أدواته وينفذها بشكل مستقل وفق الهدف". RAG غالباً يُدمج كأحد أدوات الوكيل. مثلاً: "بحث المعلومات الداخلية (RAG)" و "بحث الويب" و "حساب" و "إرسال بريد" - الوكيل يستخدمها حسب الموقف، و RAG عنصر من عناصر بنائه. ظهر أيضاً Agentic RAG وهو "RAG يحدد فيه LLM استراتيجية البحث ذاتها".
س. هل الأمان مضمون؟ لا أريد إظهار معلومات سرية لـ AI
توجد عدة حلول: (1) وضع قاعدة المتجهات ومعالجة التضمين داخل البنية التحتية الخاصة أو VPC (استضافة ذاتية لـ Qdrant و pgvector وغيرها)، (2) تشغيل LLM محلياً عبر نماذج OSS (Llama 3 و Qwen وغيرها)، (3) عند استخدام API توقيع عقود مع OpenAI أو Azure OpenAI لـ "عدم استخدام البيانات في التدريب"، (4) إضافة بيانات وصفية لصلاحيات الوصول لكل مقطع وتصفيتها وقت البحث. RAG داخلي بالكامل ممكن تقنياً ويُتبنى في المؤسسات المالية والطبية.
س. كم تستغرق مدة بناء RAG وما المهارات المطلوبة؟
للنموذج الأولي يمكن لـ مبتدئ Python بناؤه في ساعات إلى يوم (Chroma + OpenAI API بحوالي 30 سطراً). للمستوى الإنتاجي يستغرق بناء تقسيم المقاطع والبحث الهجين وإعادة الترتيب وخط التقييم 1-3 أشهر غالباً. المهارات اللازمة: "أساسيات Python" و "استخدام API لـ LLM" و "عمليات قاعدة بيانات أساسية". لا يلزم تعلم آلة متقدم، فهو مجال أنسب لمهندس البرمجيات منه لمهندس AI.
أُعد هذا المقال بناءً على معلومات أبريل 2026. أدوات ونماذج RAG تتغير بسرعة، لذا يُرجى التحقق من أحدث التوثيق الرسمي لكل خدمة عند التنفيذ.