«أريد أن يراجع ChatGPT أدلة الشركة للإجابة عن الأسئلة». «أريد البحث في الأبحاث الحديثة وتلخيصها». قد لا تكفي المعرفة التي تعلّمها النموذج لهذه الاستخدامات. توجد طرق لتزويده بالوثائق المطلوبة وقت الإجابة.

إحدى هذه الطرق هي RAG (Retrieval-Augmented Generation، التوليد المعزز بالاسترجاع). يبحث النظام عن معلومات ذات صلة في وثائق خارجية ويضيفها إلى السياق الذي يستخدمه لتوليد الإجابة. تتيح بعض ميزات الذكاء الاصطناعي الجاهزة الرجوع إلى الوثائق أيضًا، لكن رفع الملفات لا يعني دائمًا تنفيذ عملية البحث نفسها.

في هذا المقال نشرح آلية RAG في 3 خطوات بالرسوم، ونغطي قواعد بيانات المتجهات وتنفيذ LangChain والفرق عن الضبط الدقيق بأسلوب يفهمه المبتدئ ويحافظ في الوقت ذاته على الدقة التقنية.

RAG (Retrieval-Augmented Generation)

التوليد المعزز بالاسترجاع — تزويد LLM بمعرفة خارجية

المستخدم
يدخل سؤالاً
Question
قاعدة بيانات المتجهات
Retrieval (الاسترجاع)
Pinecone / Qdrant
Chroma / pgvector
LLM
Generation (التوليد)
GPT / Claude
Gemini / Llama
الإجابة
رد بالأدلة
Answer
المعرفة الخارجية
وثائق داخلية / PDF
أدلة / FAQ
أبحاث / أخبار
Augmented Prompt
نتائج البحث + السؤال
↓ إلى LLM
RAG في 3 خطوات
1. Retrieval (استرجاع) → 2. Augmented (تعزيز) → 3. Generation (توليد)
يكمّل معرفة النموذج بالوثائق؛ تبقى نتائج البحث والإجابات وصلاحيات الوصول بحاجة إلى التحقق

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 ذاته، بل تُمرّر له "المعرفة اللازمة" من الخارج عند كل سؤال جديد. هذا هو الفرق الجوهري عن الضبط الدقيق الذي سنناقشه لاحقاً.

يشرح دليل الاسترجاع في LangChain هذا الشكل الأساسي وإمكانية البحث في نظام SQL أو مستودع وثائق قائم.

2. لماذا نحتاج RAG - 3 حدود لـ LLM وحده

هناك ثلاث مشاكل لا يستطيع LLM وحده مثل ChatGPT أو Claude حلها.

الحد 1: قطع المعرفة (حداثة المعلومات)

لا تكفي المعرفة التي تعلّمها النموذج وحدها للتحقق من معلومات تغيّرت بعد التدريب. يختلف تاريخ انقطاع المعرفة باختلاف النموذج، ويجب التحقق من الأحداث اللاحقة بالرجوع إلى الوثائق أو البحث.

  • "أخبرني عن المنتج الجديد الذي أُعلن عنه أمس" ← يلزم الرجوع إلى مصدر حديث
  • "ما تفاصيل التعديل القانوني الصادر الأسبوع الماضي؟" ← يلزم الرجوع إلى مصدر حديث
  • "ما سعر الصرف اليوم؟" ← يلزم الرجوع إلى مصدر حديث

يمكن أن يستخدم RAG الأخبار وقواعد البيانات وواجهات API. لكن المصادر القديمة قد تؤدي إلى إجابات قديمة، لذلك يجب تحديث الوثائق والتحقق من نتائج البحث.

الحد 2: الهلوسة (كذب يبدو منطقياً)

الـ LLM يميل إلى تكوين أجوبة تبدو صحيحة حتى عند سؤاله عما لا يعرف. يُسمى ذلك بالهلوسة (Hallucination).

إذا سألت عن أيام الإجازة في شركة دون تزويد النموذج بلائحتها، فقد يعطي عددًا يبدو معقولًا ولا تدعمه الوثائق. هذا مثال توضيحي، وليس إجابة شُغّلت أو رُصدت في إعداد هذا المقال.

يبحث RAG في الوثائق الفعلية بهدف توليد إجابة تستند إلى مصادر. ويمكن عرض المراجع المسجلة، مثل اسم الوثيقة ورقم الصفحة. لكن ظهور مرجع لا يثبت صحة الإجابة: قد يفوّت البحث وثيقة مهمة أو يسيء النموذج فهمها.

الحد 3: عدم الوصول للبيانات الداخلية والخاصة

لا تفترض أن النموذج العام يعرف أدلة شركتك أو عقودها غير المنشورة. قبل إتاحة الوثائق له، تحقّق من حقوق استخدامها والجهات التي ستتلقى البيانات.

يختار RAG المقاطع ذات الصلة لإرسالها؛ ولا يضمن وحده حماية المعلومات السرية. حتى مع قاعدة بيانات داخلية، قد تتلقى واجهات التضمين أو التوليد الخارجية نصوص الوثائق والأسئلة ونتائج البحث. تحقّق من صلاحيات المستخدم أثناء البحث، ومن الجهات المستقبلة والتخزين والسجلات. توضح الأسئلة الشائعة هذه الفروق.

3. آلية العمل - RAG في 3 خطوات

عمل RAG يُقسَّم إلى مرحلتين: "تحضير مسبق (بناء الفهرس)" و "التشغيل (الإجابة على الأسئلة)".

المخطط الكامل لخط أنابيب RAG

التدفق الكامل من السؤال إلى الإجابة

▶ مرحلة التشغيل: الإجابة على الأسئلة
1. السؤال
"كم يوم إجازة؟"
User Query
2. Embed
نموذج التضمين
[0.12, -0.45, ...]
3. بحث المتجهات
أقرب Top-K
Cosine Similarity
4. جلب المقاطع
3-5 مقاطع ذات صلة
المادة 15: الإجازة...
↓
5. LLM + Context (Augmented Prompt)
«أجب بناءً على ما يلي: [chunk] السؤال: [استعلام المستخدم]»
GPT / Claude / Gemini يولّد الإجابة بناءً على الأدلة
↓
6. الإجابة (مع المصدر)
"10 أيام بعد 6 أشهر (المادة 15 من اللائحة)"
▶ مرحلة التحضير: تحويل الوثائق إلى متجهات
الوثيقة
PDF / Word
تقسيم المقاطع
500-1000 حرف
Embedding
تحويل لمتجهات
قاعدة المتجهات
حفظ وفهرسة
* تُنفذ عند إضافة/تحديث الوثائق

مرحلة التحضير - تحويل الوثائق إلى متجهات وحفظها

  1. جمع الوثائق: PDF و Word و HTML و Markdown وغيرها
  2. تقسيم المقاطع: تجزئة الوثيقة إلى أجزاء بطول مناسب (مثلاً 500-1000 حرف)
  3. التضمين (Embedding): تمرير كل مقطع عبر نموذج تضمين (مثل text-embedding-3-small من OpenAI) لتحويله إلى متجه (مصفوفة أرقام) من 1536 بُعداً مثلاً
  4. الحفظ في قاعدة المتجهات: تخزين المقاطع ومتجهاتها في قاعدة متخصصة (Pinecone، Qdrant، إلخ)

تُنفذ هذه العملية عند إضافة وثائق جديدة أو تحديث القائمة.

مرحلة التشغيل - 3 خطوات للإجابة على الأسئلة

عند ورود سؤال من المستخدم تكون المعالجة كالآتي.

  1. الخطوة 1: Retrieval (الاسترجاع)
    • تحويل نص السؤال إلى متجه بنفس نموذج التضمين
    • جلب أعلى K مقطع (3 في هذا المثال) من قاعدة المتجهات تكون "الأقرب لمتجه السؤال"
    • يُحسب القرب عبر تشابه جيب التمام (Cosine similarity) أو غيره
  2. الخطوة 2: Augmented (التعزيز)
    • تضمين المقاطع المسترجعة في الموجه باعتبارها "معلومات مرجعية"
    • بصيغة مثل: "بناءً على المعلومات التالية أجب على السؤال: [نتائج البحث] السؤال: [سؤال المستخدم]"
  3. الخطوة 3: Generation (التوليد)
    • يولّد LLM (GPT، Claude، Gemini وغيرها) الإجابة بناءً على المعلومات المرجعية
    • يمكن إرفاق "أي وثيقة استُخدمت" كمصدر عند الحاجة

مثال عملي: سؤال ChatGPT عن لائحة العمل الداخلية

الأعداد والمدد وأرقام المواد أدناه تخص لائحة شركة خيالية اختيرت لشرح الآلية، ولا تصف نظام إجازات حقيقيًا.

تدفق سؤال "كم يوم إجازة سنوية لدينا؟":

  1. يُحوَّل السؤال إلى متجه عبر نموذج التضمين ← [0.12, -0.45, 0.78, ...]
  2. يُجلَب 3 مقاطع متعلقة بـ "إجازة" و "إجازة سنوية" من قاعدة المتجهات
  3. المقاطع المسترجعة: "المادة 15: الإجازة السنوية المدفوعة - يُمنح الموظف الذي مر على تعيينه 6 أشهر 10 أيام...", "حسب سنوات الخدمة تصل إلى 20 يوماً..." إلخ
  4. تركيب الموجه: "معلومات مرجعية: المادة 15... السؤال: كم يوم إجازة سنوية؟"
  5. إجابة LLM: "10 أيام بعد 6 أشهر من التعيين، وحسب سنوات الخدمة تصل إلى 20 يوماً (انظر المادة 15 من لائحة العمل)"

4. المكونات الرئيسية لـ RAG

سنستعرض المكونات الخمسة التي يتكون منها RAG.

أولاً: نموذج التضمين (Embedding Model)

نموذج AI يحوّل النصوص إلى متجهات رقمية. مدرَّب على أن تكون "النصوص المتقاربة دلالياً قريبة في فضاء المتجهات".

النموذجالمزودالميزات
text-embedding-3-smallOpenAI1536 بُعدًا افتراضيًا؛ يمكن تقليل العدد عبر dimensions
text-embedding-3-largeOpenAI3072 بُعدًا افتراضيًا؛ يمكن تقليل العدد عبر dimensions
voyage-4Voyage AIمذكور في توثيق Anthropic، وله نسخة خفيفة وأخرى مفتوحة الأوزان
Cohere EmbedCohereمرشح للبحث في وثائق متعددة اللغات
multilingual-e5-largeMicrosoft (نموذج منشور)مرشح للتشغيل المحلي؛ تحقّق من شروط الاستخدام والموارد اللازمة
BGE-M3BAAI (OSS)متعدد اللغات؛ مرشح للتشغيل المحلي

تحقّق من الأبعاد الافتراضية لنماذج OpenAI وإمكانية تقليلها في دليل التضمين الرسمي. عند المقارنة، قيّم نتائج البحث على وثائقك، ولا تعتمد على عدد الأبعاد وحده.

ثانياً: قاعدة بيانات المتجهات

تخزّن قاعدة بيانات أو إضافة المتجهات وتبحث عن المتجهات المشابهة. التفاصيل في القسم التالي.

ثالثاً: محرك البحث (Retriever)

إضافة إلى البحث عبر المتجهات، كثيراً ما يُدمج البحث بالكلمات المفتاحية (BM25 وغيره) أو بحث هجين.

رابعاً: LLM (للتوليد)

نموذج اللغة الكبير الذي يصنع الجواب النهائي. مثل GPT و Claude و Gemini و Llama. يعمل مع APIs تجارية أو نماذج OSS محلية. وكل هذه العائلات تستبدل إصداراتها باستمرار، فتحقق من أسماء النماذج الحالية في قائمة أبرز نماذج الذكاء الاصطناعي.

خامساً: قالب الموجه (Prompt Template)

قالب لدمج نتائج البحث وسؤال المستخدم وتمريرهما إلى LLM. عنصر حاسم لدقة RAG.

أنت مساعد متخصص في اللوائح الداخلية.
أجب على السؤال بناءً على المعلومات المرجعية التالية فقط.
إن لم تتوفر إجابة في المعلومات المرجعية أجب بـ "لا تتوفر معلومات".

[المعلومات المرجعية]
{retrieved_chunks}

[السؤال]
{user_question}

[الإجابة]

5. ما هي قاعدة بيانات المتجهات

تتيح قاعدة المتجهات فهارس أو وظائف لتخزين المتجهات عالية الأبعاد والبحث عن المتجهات المشابهة. يمكن استخدام خدمة متخصصة أو إضافة هذه الوظائف إلى قاعدة قائمة، مثل pgvector مع PostgreSQL. تتوقف السرعة والدقة على الفهرس وحجم البيانات والإعدادات.

مقارنة أبرز قواعد المتجهات

القاعدةالنوعالميزاتالسعر
PineconeSaaS مدارةتتولى الخدمة إدارة البنية التحتيةStarter مجانية؛ Builder بسعر ثابت 20 دولارًا شهريًا. Standard: حد أدنى 50 دولارًا شهريًا، ثم فوترة الاستخدام الزائد (الأسعار الرسمية)
WeaviateOSS + سحابةGraphQL API وبحث هجينبرنامج OSS مجاني. السحابة: Free وFlex من 45 دولارًا شهريًا (الأسعار الرسمية)
QdrantOSS + سحابةبحث متجهات وتصفية البيانات الوصفيةاستضافة ذاتية أو سحابة؛ موارد التشغيل وأسعار السحابة منفصلة
ChromaOSSيمكن استخدامها من Pythonموارد الاستضافة الذاتية وتشغيلها تكلفة منفصلة
pgvectorإضافة إلى PostgreSQLتضيف بحث المتجهات إلى PostgreSQLتحقّق من شروط الإضافة وتكلفة تشغيل قاعدة البيانات
MilvusOSS + سحابةبناء نظام بحث متجهاتاستضافة ذاتية أو Zilliz Cloud؛ شروط التسعير منفصلة
Elasticsearchمحرك بحثبحث متجهات وبحث بالكلمات المفتاحيةبحسب التوزيعة والميزات والعقد؛ تتوفر خدمات مدارة
Vertex AI Vector SearchGoogle Cloudتكامل مع منظومة GCPفوترة بالاستخدام

جرت مراجعة أسعار Pinecone وWeaviate في صفحاتهما الرسميتين يوم 9 أكتوبر 2026. حتى مع برنامج مجاني، تبقى موارد الخادم وصيانة الاستضافة الذاتية تكلفة منفصلة. وفي السحابة يتأثر الإجمالي بالتخزين والبحث وميزات الذكاء الاصطناعي الإضافية والنسخ الاحتياطية.

أيها نختار

  • للتجربة السريعة: Chroma (مع تجهيز الحزم والنماذج اللازمة)
  • الاستفادة من PostgreSQL القائم: pgvector (يجمع قواعد البيانات في مكان واحد)
  • إسناد البنية التحتية إلى خدمة: Pinecone (مع ضبط الفهرس والسعة والصلاحيات)
  • استضافة ذاتية مع إدارة التشغيل والصلاحيات: Qdrant أو Weaviate
  • وثائق كثيرة مع تقييم الفهرسة والسعة والبحث على البيانات الفعلية: Milvus

وللاطلاع على اختيار جهة الاستضافة يمكن مراجعة مقارنة بين PaaS (مثل Vercel) والاستضافة المشتركة و VPS والسحابة.

6. أبرز الاستخدامات - أين يُستعمل RAG

يمكن استخدام RAG للإجابة من الوثائق الداخلية أو معلومات المنتجات. فيما يلي أمثلة على الاستخدامات.

الاستخدام 1: QA الوثائق الداخلية (قاعدة المعرفة)

يمكن البحث في اللوائح والأدلة والمواصفات ومحاضر الاجتماعات والمواد التجارية للإجابة عن أسئلة الموظفين. يجب تحديد ما يحق لكل مستخدم الاطلاع عليه وتحديث الفهرس عند تعديل الوثائق.

الاستخدام 2: أتمتة دعم العملاء

يمكن البحث في الأسئلة الشائعة وسجل الدعم لتوليد رد أولي، مع تحويل الاستفسارات المعقدة إلى فريق الدعم البشري.

الاستخدام 3: أسئلة وأجوبة المعرفة المتخصصة (قانوني وطبي)

يساعد البحث في السوابق القضائية والأبحاث الطبية والإرشادات على جمع مواد يراجعها المختصون. يجب عرض المصادر وإتاحة التحقق البشري من انطباقها ومن مضمون الإجابات. وجود مرجع لا يضمن صحة القرار أو سلامته.

الاستخدام 4: البحث في الأبحاث العلمية وتلخيصها

يمكن البحث في الأبحاث والملخصات المسموح باستخدامها للإجابة عن اتجاهات مجال ما أو الدراسات المتعلقة بطريقة معينة. وضّح نطاق المواد وتاريخها، ثم راجع نتائج الدراسة وشروطها في النص الأصلي.

الاستخدام 5: بحث المنتجات و FAQ في مواقع التجارة الإلكترونية

RAG يدمج أدلة المنتج والمراجعات وسياسات الإرجاع. يمكّن من البحث بلغة طبيعية مثل "هل هذه المكنسة مناسبة لشعر الحيوانات الأليفة؟"

الاستخدام 6: محادثة وثائق المطورين

يمكن البحث في التوثيق الرسمي للمكتبات للإجابة عن أسئلة مثل «هل يوجد مثال لهذا الإجراء؟». أدرج الإصدار المستهدف في شروط البحث لتجنّب الخلط بين وثائق إصدارات مختلفة.

الاستخدام 7: البحث وشرح قواعد الكود الداخلية

يمكن البحث في الكود ووثائق التصميم للإجابة عن كيفية استخدام دالة أو تحديد ملفات تنفذ إجراءات مشابهة. وقد يساعد الرجوع إلى الكود GitHub Copilot Chat وCursor وClaude Code وأدوات تطوير أخرى بالذكاء الاصطناعي، لكن معالجة هذه الأدوات داخليًا ليست بالضرورة مطابقة للرسم هنا.

الاستخدام 8: تحسينات AI الجديدة مثل llms.txt

يقترح llms.txt تقديم دليل نصي لوثائق الموقع. قد يكون مدخلًا للبحث أو جمع المواد، لكنه ليس معيارًا يضمن أن تقرأه أنظمة الذكاء الاصطناعي أو تستشهد بالوثائق بدقة.

7. RAG مقابل الضبط الدقيق - أيهما تختار

إلى جانب RAG، يُناقش غالباً الضبط الدقيق (Fine-tuning) كطريقة "لتزويد LLM بمعرفة خاصة". النهجان مختلفان جذرياً.

RAG مقابل الضبط الدقيق (Fine-tuning)

أيهما لتزويد LLM بالمعرفة؟ — نهجان مختلفان جذرياً

RAG
يجلب المعلومات من قاعدة خارجية وقت التشغيل
النهج
عند كل سؤال يبحث في قاعدة خارجية ويضيف النتائج للموجه ثم يرسلها للـ LLM
المزايا
+ تحديث الوثائق والفهرس دون إعادة تدريب النموذج
+ يمكن إظهار المصدر (أدلة واضحة)
+ يهدف إلى إجابات تستند إلى المصادر
+ تجربة الرجوع إلى الوثائق دون مهمة تدريب
+ يدعم البيانات الديناميكية والمحدّثة
العيوب
- لا يغيّر RAG أوزان النموذج
- جودة الإجابة تعتمد على دقة البحث
- موجهات أطول تعني تكلفة أعلى
الاستخدامات المناسبة
QA داخلي / FAQ / قانون / طب / بحث الأخبار
Fine-tuning
تعديل سلوك النموذج بأمثلة تدريب
النهج
يجهّز أمثلة للمدخلات والمخرجات المطلوبة ثم يضبط أوزان النموذج بتدريب إضافي
المزايا
+ يتعلم الأسلوب واللهجة والشخصية
+ قد يتيح تقصير الموجهات المطلوبة
+ يكتسب أنماط لغة المجال المتخصص
+ ضبط الإجابات لمهمة محددة
+ اختيار التشغيل بحسب النموذج والطريقة
العيوب
- إعداد الأمثلة والتدريب والتقييم
- تغيير المعرفة المتعلّمة يتطلب تدريبًا جديدًا
- التدريب وحده لا يبحث في المصادر الحالية أو يتحقق منها
الاستخدامات المناسبة
توليد بأسلوب محدد / مصطلحات تخصصية / تحسين الاستدلال

الرجوع إلى الوثائق وتعديل السلوك هدفان مختلفان. اجمع بينهما عند الحاجة ثم قيّم النتائج

الفرق الجوهري

المعيارRAGالضبط الدقيق
النهجتمرير المعلومات من الخارج وقت التشغيلإعادة تدريب النموذج مسبقاً
تحديث المعرفةتحديث الوثائق والفهرس، مع تنفيذ معالجة التحديثتدريب إضافي لتغيير المعرفة المتعلّمة
عمل الإعدادإعداد الوثائق والفهرس والبحث والصلاحيات والتقييمإعداد الأمثلة والتدريب والتقييم
تكاليف التشغيلالبحث والتخزين والتوليد والتحديث والتقييمالتوليد وإعادة التدريب والتخزين والتقييم، بحسب طريقة الإتاحة
الإجابات الخاطئةقد يفوّت البحث وثائق أو يسيء النموذج تفسيرهاقد تبقى الإجابات الخاطئة بعد التدريب
إظهار المصدريمكن عرض مصادر الوثائق المسترجعة؛ يلزم التحقق من صحتهاالتدريب وحده لا يضمن جلب المصادر أو التحقق منها
الأسلوب والنبرةتعليمات وأمثلة، دون تغيير الأوزانتعديل السلوك من أمثلة التدريب
المعلومات المتغيرةيلزم جلب وثائق محدّثةدون بحث أو أدوات أخرى لا يمكن التحقق من التغييرات التالية للتدريب
البيانات السريةمراجعة مسارات البحث والتضمين والتوليد والسجلاتمراجعة مسارات التدريب والتوليد والتخزين والسجلات

متى يناسب RAG

  • المعرفة تتحدث كثيراً (أخبار، وثائق داخلية، معلومات منتجات)
  • الحاجة لإظهار سند الإجابة (قانون، طب، مالية)
  • تختلف الوثائق اللازمة باختلاف السؤال، وتريد البحث عن المقاطع المناسبة بدل إرسال جميع الوثائق في كل مرة
  • بدء نموذج أولي يرجع إلى الوثائق دون إعادة تدريب النموذج

متى يناسب الضبط الدقيق

  • الرغبة في الإجابة بأسلوب أو نبرة محددة (هوية شركة، شخصية)
  • تعلم أنماط لغوية متخصصة (مصطلحات طبية، أسلوب قانوني)
  • تقييم الوفورات المحتملة من الموجهات الأقصر أو نموذج أصغر، مع احتساب تكلفة التدريب
  • إمكانية إعداد أمثلة للإجابات المطلوبة وبيانات للتقييم

تختلف شروط إتاحة التدريب الإضافي باختلاف الخدمة. في توثيق OpenAI الرسمي الذي روجع يوم 9 أكتوبر 2026، لا يتاح الضبط الدقيق للمستخدمين الجدد. تحقّق أولًا من النماذج المتاحة والشروط التعاقدية.

الجمع عند الحاجة وتقييم النتائج

يمكن الجمع بين RAG والضبط الدقيق؛ مثل تعديل تنسيق الإجابة بالتدريب وتقديم الوثائق المحدّثة عبر البحث. لكن الجمع لا يضمن تحسن الجودة.

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

8. قبل أن تبني نظامك - جرّب على مستنداتك

قبل أن تبني RAG بنفسك، تحقّق بمستنداتك من أن نمط "ابحث ثم أجب" مفيد أصلًا. هذا يوفّر عليك الالتفاف، وفي معظم الحالات لا يتطلب الاختبار الأول أي كود.

الخطوة 1: قدّر إمكانية تقديم كل الوثائق مع السؤال

إذا اتسعت نافذة سياق النموذج المختار لجميع الوثائق، يمكن تقديمها دون خطوة بحث. في شرح Contextual Retrieval المنشور عام 2024، اقترحت Anthropic وضع قاعدة معرفة أقل من 200,000 توكن، أي نحو 500 صفحة، مباشرة في الموجه واستخدام التخزين المؤقت لتحسين الكفاءة (الشرح الرسمي). ليس هذا العدد عتبة عامة لكل النماذج. قرّر بحسب حد الإدخال للنموذج الحالي وطول الوثائق وجودة الإجابات والتكلفة.

الخطوة 2: ضع المستندات في ميزة "المشاريع" الجاهزة واطرح أسئلتك

تنتقل ميزة Projects في Claude تلقائيًا إلى RAG حين تقترب معرفة المشروع من حدّ السياق، فتستوعب حتى 10 أضعاف المحتوى. وهي ميزة في الخطط المدفوعة؛ عند تفعيلها يظهر مؤشر، ويستخدم Claude أداة project knowledge search عند الإجابة (مركز مساعدة Claude). كما تتيح Projects في ChatGPT إضافة الملفات والسؤال عنها، مع حدود مثل عدد الملفات تختلف بحسب الخطة.

الخطوة 3: اختبر بعشرة أسئلة تعرف إجاباتها

اكتب 10 أسئلة تعرف موضع إجابتها في المستندات، وسجّل ثلاثة أمور.

  1. هل الإجابة صحيحة؟
  2. هل المقطع المذكور دليلًا هو الصحيح؟
  3. حين تسأل عن شيء غير موجود في المستندات، هل يقول ذلك؟

إذا ظهرت إجابات مختلقة في الاختبار الثالث، أعد توجيه النموذج إلى التصريح بأن المعلومات غير موجودة عندما تغيب، ثم اختبر من جديد. عشرة أسئلة مثال لتجربة أولى؛ النجاح في معظمها لا يثبت جودة الإنتاج أو الأمان. وسّع التقييم ليشمل الأسئلة المهمة والوثائق المتشابهة والتناقضات وصلاحيات الاطلاع.

الخطوة 4: إن احتجت مزيدًا من التحكم، قارن البناء الداخلي بالخدمة المدارة

العلامةنقاط مقارنة الخيارات
آلاف المستندات، أو تحديثات يوميةتحقّق من السعة والإدخال الآلي وتحديث الفهرس
لا يحق للجميع رؤية المستندات نفسهايلزم تصفية الصلاحيات في مرحلة البحث نفسها (انظر "الأمان" في الأسئلة الشائعة)
تريد استدعاء الإجابات من أنظمة داخلية أو تطبيقاتتحقّق من واجهات API والتكامل والمصادقة والأسعار
البحث يخطئ الموضع الصحيح كثيرًاتحقّق من إمكانية ضبط البحث وإعادة الترتيب والتقييم

كمثال على تحسين البحث، تذكر Anthropic أن الجمع بين Contextual Embeddings وContextual BM25 خفّض معدل فشل استرجاع المقاطع ضمن أفضل 20 نتيجة بنسبة 49%، وبنسبة 67% مع إعادة الترتيب (شروط التجربة ونتائجها). هذا قياس للبحث على بيانات تقييم الشركة، وليس ضمانًا لانخفاض إجاباتك الخاطئة بالنسب نفسها.

النسخة الدنيا التي تبنيها بنفسك في القسم التالي، أما تحسينات بيئة الإنتاج مثل البحث الهجين وإعادة الترتيب فيتناولها دليل تنفيذ RAG وقواعد البيانات المتجهية.

9. طريقة التنفيذ - بناء RAG بـ LangChain

نستعرض أبرز أُطر تنفيذ RAG، ثم نقدم أصغر مثال كود بـ Python.

أبرز الأُطر

الإطاراللغةالميزات
LangChainPython / JSربط البحث والنماذج ومصادر البيانات
LlamaIndexPythonمتخصص في توصيل البيانات والفهرسة
HaystackPythonللمؤسسات، تحكم دقيق
Semantic KernelC# / Pythonمن Microsoft، تكامل مع .NET
DSPyPythonأتمتة تحسين الموجه
تنفيذ ذاتيأي لغةالجمع بين البحث والتوليد بحسب الحاجة

أصغر مثال RAG عبر LangChain

هذا مثال تعليمي يبحث عن مقاطع مناسبة في PDF ويقدّمها للنموذج ليجيب. تتطلب LangChain 1.x إصدار Python 3.10 أو أحدث. اضبط مفتاح API في متغير البيئة OPENAI_API_KEY، وجهّز بيئة لها صلاحية الوصول إلى نموذج OpenAI API المختار. لا تضع المفتاح في الكود أو مستودع عام.

يرسل المثال نص PDF والسؤال إلى واجهة التضمين، ثم نتائج البحث والسؤال إلى واجهة النموذج اللغوي. تشغيل Chroma على جهازك لا يجعل المعالجة كلها محلية. أسعار API وشروطها منفصلة عن اشتراك ChatGPT. اختبر بوثائق غير سرية يُسمح لك بإرسالها. هذا الكود مثال تعليمي لم يُتحقَّق من عمله. قبل تشغيله، قارنه بالطريقة الرسمية المعتمدة في الإصدار الذي تستخدمه من المكتبة.

# pip install -U langchain-openai langchain-chroma langchain-text-splitters langchain-community pypdf
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma

# 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)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})

# 4. البحث (أقرب 3 مقاطع إلى السؤال)
question = "كم يوم إجازة سنوية؟"
found = retriever.invoke(question)
context = "\n\n".join(d.page_content for d in found)

# 5. تمرير الأدلة وتوليد الإجابة
llm = ChatOpenAI(model="gpt-6-luna")
answer = llm.invoke([
    {"role": "system", "content": "أجب بالاعتماد على المادة التالية فقط. وإن لم تجد الجواب فيها فقل إنه غير موجود في المادة.\n\n" + context},
    {"role": "user", "content": question},
])
print(answer.content)
print("المصدر:", [d.metadata for d in found])

يبحث المثال عن مقاطع مناسبة من PDF، ثم يقدّم المعلومات المرجعية إلى GPT-6 Luna لتوليد الإجابة. ويعرض البيانات الوصفية للوثائق المسترجعة. تتوقف بيانات مثل أرقام الصفحات على الوثيقة والمحمّل؛ ويجب التحقق من صحة الاستشهادات في الإجابة بصورة منفصلة.

جرت مطابقة المعرّف gpt-6-luna في 9 أكتوبر 2026 مع صفحة النموذج الرسمية. قبل الاستخدام، راجع قائمة النماذج الرسمية للتحقق من واجهات API المتوافقة وشروط الإتاحة والأسعار. قارن المرشحين على الوثائق والأسئلة نفسها من حيث فهم المصادر وجودة الإجابات والسرعة والتكلفة.

يستخدم المثال بنية حزم LangChain 1.x. في الإصدار 1.0 نُقلت langchain.chains، التي تضمنت RetrievalQA، إلى حزمة langchain-classic المنفصلة. هنا يُستورد تقسيم النص من langchain_text_splitters، ويُكتب ما تسميه الوثائق «2-Step RAG» في خطوتين: البحث ثم تقديم المصادر للنموذج للإجابة. تحقّق من مسارات الاستيراد ومتطلبات Python في دليل الترحيل الرسمي. سجّل إصدارات الحزم واختبر التنفيذ في بيئة قابلة لإعادة الإنتاج.

التنفيذ الإنتاجي يتضمن

  • تحسين تقسيم المقاطع (تقسيم دلالي، مقاطع هرمية، إلخ)
  • البحث الهجين (دمج البحث بالمتجهات مع كلمات BM25)
  • إعادة الترتيب (Cohere Rerank و voyage-rerank لإعادة ترتيب نتائج البحث)
  • إعادة صياغة الاستعلام (HyDE و Multi-Query لتحسين دقة البحث)
  • خط أنابيب التقييم (تقييم تلقائي عبر RAGAS)

10. تحديات RAG وحلولها

في بيئة الإنتاج، يجب التحقق من النقاط التالية.

التحدي 1: صعوبة تقسيم المقاطع

دقة البحث تتغير كثيراً حسب طريقة تقسيم الوثيقة. القصير يفقد السياق والطويل يضعف دقة البحث.

الحلول:

  • التقسيم الدلالي (التقسيم حسب الوحدات الدلالية)
  • إعداد التداخل (تكرار جزئي بين المقاطع المتجاورة)
  • المقاطع الهرمية (حفظ بنية أبوية، البحث في الأبناء والإحالة للأب)

التحدي 2: دقة الـ Retrieval (البحث)

اختيار مقاطع تبدو متشابهة لكنها مختلفة، أو فقدان معلومات مهمة، إلخ.

الحلول:

  • البحث الهجين (متجهات + كلمات BM25)
  • إعادة ترتيب نتائج البحث بنماذج reranking
  • توليد استعلامات متعددة (نفس السؤال بصيغ مختلفة)

التحدي 3: قيود طول السياق

هناك حد أقصى لعدد التوكنز التي يقبلها LLM، فلا يمكن تمرير كميات كبيرة من المقاطع.

الحلول:

  • تقليص K (أعلى 3-5 مقاطع)
  • التلخيص أولاً ثم التمرير
  • استخدام LLM ذي سياق طويل (يختلف الحد من نموذج لآخر، وبعض النماذج اليوم يقبل نحو مليون توكن؛ تحقق من حد نموذجك في الوثائق الرسمية)

التحدي 4: صعوبة التقييم

القياس الموضوعي لجودة إجابات RAG صعب. كيفية إعداد بيانات الإجابات المرجعية تحدٍّ في حد ذاته.

الحلول:

  • استخدام RAGAS (إطار OSS لتقييم RAG)
  • الحساب التلقائي لمؤشرات دقة الإجابة وصلتها بالبحث وأمانتها
  • LLM-as-a-Judge (تقييم بـ LLM آخر)

التحدي 5: تعدد اللغات والوسائط

الوثائق بلغات مختلطة وملفات PDF بصور وجداول ورسومات صعبة المعالجة.

الحلول:

  • نماذج تضمين متعددة اللغات (BGE-M3 و Cohere Multilingual)
  • تحويل الصور والجداول إلى نص مسبقاً عبر LLM (OCR + VLM)
  • تضمين متعدد الوسائط (CLIP و Nomic وغيرها)

11. قائمة بأبرز الأدوات والخدمات

نلخص أبرز أدوات بناء RAG حسب الفئة.

الأُطر والمكتبات

  • LangChain - ربط البحث والنماذج ومصادر البيانات
  • LlamaIndex - متخصص في توصيل البيانات
  • Haystack - للمؤسسات
  • DSPy - أتمتة تحسين الموجه

قواعد المتجهات (مدارة)

  • Pinecone - بحث متجهات مدار
  • Weaviate Cloud - يدعم GraphQL
  • Qdrant Cloud - خدمة Qdrant المدارة
  • Zilliz Cloud - النسخة المدارة من Milvus

قواعد المتجهات (OSS واستضافة ذاتية)

  • Chroma - بحث متجهات من Python
  • Qdrant - بحث متجهات وتصفية
  • Weaviate - النسخة OSS
  • Milvus - قاعدة بيانات متجهات
  • pgvector - إضافة لـ PostgreSQL

نماذج التضمين

  • OpenAI text-embedding-3 - توليد التضمينات عبر API
  • Voyage AI - مذكور في توثيق Anthropic
  • Cohere Embed - متعدد اللغات
  • BGE-M3 - نموذج متعدد اللغات مرشح للتشغيل المحلي

خدمات RAG بدون كود ومدارة

  • ChatGPT Projects / Custom GPTs الموجودة - ميزات جاهزة للرجوع إلى وثائق إضافية؛ تحقّق من معالجة كل ميزة وشروطها
  • Claude Projects - ميزة RAG في Anthropic
  • Notion AI - بحث الوثائق داخل Notion
  • Microsoft Copilot (Microsoft 365) - مرشح للرجوع إلى الوثائق الداخلية؛ تحقّق من العقد والاتصالات والصلاحيات
  • Dify - منصة بناء AI بدون كود مفتوحة المصدر
  • Vertex AI Agent Builder - خدمة بناء RAG في Google Cloud
  • Amazon Bedrock Knowledge Bases - RAG مدار من AWS

أدوات التقييم

  • RAGAS - إطار OSS لتقييم RAG
  • TruLens - تقييم تطبيقات LLM عموماً
  • LangSmith - تتبع وتقييم رسمي من LangChain

لمعرفة المزيد عن الضبط الدقيق (fine-tuning)، اقرأ أيضًا ما هو الضبط الدقيق: يشرح متى تستخدمه بدل RAG وطرقًا مثل LoRA/QLoRA للمبتدئين.

الأسئلة الشائعة

س. هل يمكن استخدام RAG في ChatGPT أيضاً؟

تختلف ميزات ChatGPT الجاهزة عن أدوات API. تصف وثائق ChatGPT Enterprise الرسمية معالجة نصوص الملفات بالاستعانة بالسياق والاسترجاع، والجداول باستخدام Python، والصور بمعالجة الصور. لا يعني ذلك أن كل ملف في كل خطة يُعالج بالطريقة نفسها.

للمطورين، تتيح أداة File Search في Responses API بحثًا مستضافًا يجمع البحث الدلالي والكلمات المفتاحية، أو يمكن بناء النظام باستخدام LangChain. لا يصح مساواة كل رفع ملف في منتج OpenAI بهذا API. راجع القسم 8 لميزة Claude Projects.

في خطط Free وGo وPlus وPro الشخصية، لا يتاح حاليًا إنشاء Custom GPTs جديدة أو نشرها. تختلف شروط استخدام الموجودة وتعديلها وشروط خطط المؤسسات؛ راجع دليل إنشاء GPTs وتعديلها قبل الاختيار.

س. كم تبلغ تكلفة تشغيل RAG؟

لا يكفي عدد الوثائق والأسئلة لتحديد سعر شهري. تتغير التكلفة مع طول الوثائق وتكرار تحديثها وعدد المقاطع المسترجعة وطول المدخلات والمخرجات والنموذج وقاعدة البيانات. تشمل البنود التضمين والتخزين والبحث وتوليد الإجابات وتحديث الفهرس، إضافة إلى الخوادم والتقييم والمراقبة والصيانة.

ابدأ بوثائق غير سرية مسموح باستخدامها، وقِس التوكنز المستخدمة لكل سؤال وحجم البحث. ثم قدّر حجم الاستخدام الشهري وأضف الحد الأدنى لرسوم قاعدة البيانات وتكلفة التحديث. راجع أسعار API الرسمية وأسعار قاعدة البيانات.

س. ما الفرق بين RAG ورفع ملف لـ ChatGPT؟

رفع ملف إلى خدمة جاهزة وبناء RAG قد يخدمان غرض الرجوع إلى الوثائق، لكن المعالجة الداخلية ليست بالضرورة واحدة. تختلف معالجة النص والجداول والصور، وحدود الاستخدام والتكلفة، بحسب الميزة والخطة.

البناء الداخلي أو خدمة API يمنحان خيارات لضبط تقسيم النص والبحث والصلاحيات والتقييم. لكنهما يتطلبان أيضًا إدارة التحديثات والمراقبة. قارن الميزات الجاهزة والخدمات المدارة والبناء الداخلي بحسب متطلباتك. وجود قاعدة المتجهات داخل الشركة لا يمنع إرسال البيانات إلى واجهات التضمين والتوليد الخارجية، كما يوضح القسم 9.

س. هل تختفي الهلوسة تماماً مع RAG؟

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

س. كيف ندعم الوثائق العربية؟

لدعم العربية، قيّم ثلاثة أمور: نموذج تضمين متعدد اللغات، وتقسيم يراعي حدود الكلمات وعلامات الترقيم، ونموذج يولّد إجابات عربية مناسبة. يمكن مقارنة مرشحين مثل OpenAI text-embedding-3 وCohere Multilingual وBGE-M3. لا يُستنتج تفوق أحدها من اسمه؛ اختبر البحث والإجابات على الوثائق والأسئلة المسموح باستخدامها، بما في ذلك النصوص المختلطة بالعربية والإنجليزية.

س. ما الفرق بين RAG والوكيل (AI Agent)؟

تعرض الرسوم هنا الشكل الأساسي ذي الخطوتين: البحث ثم الإجابة. لكن RAG ليس محصورًا في إجراء ثابت. في Agentic RAG يختار الوكيل ما إذا كان يحتاج إلى البحث وكيف يبحث، وفي Hybrid RAG يمكن إدخال التحقق من النتائج وإعادة البحث.

قد يستخدم الوكيل البحث في الوثائق أو الويب وأدوات أخرى بحسب المهمة. ليس كل وكيل RAG، كما أن استخدام البحث لا يعني تلقائيًا نظامًا مستقلًا ينفّذ كل الإجراءات. راجع أشكال RAG في دليل LangChain.

س. هل الأمان مضمون؟ لا أريد إظهار معلومات سرية لـ AI

RAG لا يضمن السرية بمفرده. تحقّق من أماكن البحث والتضمين والتوليد والتخزين والسجلات. قد يكون التنفيذ محليًا، لكن ذلك يتطلب نماذج وتراخيص وموارد وإدارة صلاحيات مناسبة. حتى مع قاعدة داخلية، قد ترسل واجهات API الخارجية نصوصًا وأسئلة ونتائج.

لا تُستخدم بيانات OpenAI API للتدريب افتراضيًا ما لم تختَر المشاركة، لكن عدم التدريب لا يعني عدم التخزين. تتغير شروط الاحتفاظ بسجلات مراقبة إساءة الاستخدام وحالة التطبيقات والملفات ومخازن المتجهات وحذفها بحسب الميزة وإعدادات الاحتفاظ؛ راجع دليل بيانات API. تحقّق بصورة منفصلة من التدريب والتخزين ومراقبة إساءة الاستخدام في توثيق Azure.

أضف صلاحيات الوصول إلى بيانات المقاطع الوصفية وطبّقها قبل إتاحة نتائج البحث للمستخدم. لا تسترجع وثائق سرية لا يحق له رؤيتها ثم تعتمد فقط على توجيه النموذج إلى عدم إظهارها.

س. كم تستغرق مدة بناء RAG وما المهارات المطلوبة؟

يتطلب النموذج الأولي أساسيات Python وفهم مفاتيح API والأسعار وتحميل الوثائق والبحث والتحقق من النتائج. التشغيل الإنتاجي يتطلب أيضًا تحديث الوثائق والمصادقة والصلاحيات والتقييم والمراقبة والاستجابة للحوادث وإدارة السجلات والتكاليف.

لا توجد مدة عامة يمكن استنتاجها من هذا المثال. قدّر العمل بعد تحديد حجم الوثائق وجودتها وتواتر التحديث والتكاملات والصلاحيات ومتطلبات التقييم والتشغيل. إذا فكّرت في الضبط الدقيق، فتحقّق من شروط إتاحته الموضحة في القسم 7.

رُوجعت الأسعار وشروط المنتجات وبيانات API في المصادر الرسمية يوم 9 أكتوبر 2026. لم يُشغّل كود المثال أو تُقَس نتائج API والفوترة، ولم تُثبت حماية المعلومات السرية عمليًا. راجع أحدث توثيق وشروط كل خدمة قبل التنفيذ.