EN
ابدأ هنا المواضيع الفِرَق المرجع المستجدّات المحفوظات
متقدّم

البحث في مستنداتك أنت (RAG)

كيف يبحث الذكاء الاصطناعي في مستنداتي أنا؟

الإجابة المختصرة

RAG (retrieval-augmented generation) يعني أن النظام يبحث في مستنداتك أولًا، ويستخرج المقاطع القليلة الأوثق صلةً، ثم يسلّمها إلى الـ model ليجيب منها. فتكون الإجابة مستندة إلى مادّتك المصدرية الفعلية، بدل ذاكرة تدريب الـ model.

الـ model يعرف ما قرأه أثناء تدريبه. لم يرَ يومًا دليل موظفيك، ولا عقود الربع الماضي، ولا تذاكر الدعم الأربعة آلاف التي سجّلها فريقك هذا العام. اسأله عن أيٍّ من ذلك فتحصل على إجابة واثقة ومعقولة ومختلَقة — أسوأ ما يجيده، مرتديًا ثوب أفضل ما يجيده. وليس هناك إلا إصلاحان صادقان: أن تضع المستندات المعنية أمام الـ model مباشرة، أو أن تمنحه وسيلة للذهاب والعثور عليها. والـ RAG هو الثاني.

والآلية أقلّ غموضًا من الاختصار. تُقطَّع مستنداتك إلى مقاطع — صفحة، أو قسم، أو بضع فقرات لكل مقطع. ويمرّ كل مقطع عبر model يحوّل النص إلى قائمة طويلة من الأرقام تلتقط معناه، لا الكلمات التي استُخدمت فيه؛ وتُسمّى هذه القوائم embeddings، ومقطعان يتحدّثان عن الفكرة نفسها ينتهيان متقاربين رقميًا حتى لو لم يشتركا في أي مفردة. وتذهب القوائم إلى vector database مبنية للإجابة عن سؤال واحد بسرعة عالية: ما الأقرب معنى إلى هذا؟ وحين تسأل شيئًا، يُحوَّل سؤالك إلى أرقام بالطريقة نفسها، وتُعيد الـ database حفنة المقاطع الأقرب، وتُلصَق تلك المقاطع في الـ context الخاص بالـ model إلى جانب سؤالك. هذا هو الـ «retrieval». ثم يكتب الـ model الإجابة ممّا سُلِّم إليه — الـ «generation».

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

ونمط الفشل حقيقي بالقدر نفسه، ويستحقّ الفهم قبل أن يبيعك أحدهم نظامًا منه. فنظام الـ RAG لا يستطيع الإجابة إلا ممّا صادف أن عثر عليه الـ retrieval. وإن سحب البحث المقاطع الثلاثة الخطأ، فسيجيب الـ model بطلاقة وبخطأ منها، ولن يبدو في الإجابة أي شيء يميّزها عن إجابة صحيحة. وهو ضعيف كذلك في الأسئلة التي تتطلّب قراءة كل شيء — «كم عقدًا من عقودنا يتضمّن بند إنهاء؟» سؤال تجميعي، واسترجاع العقود الخمسة الأوثق صلةً لا يجيب عنه. فجودة الـ retrieval، لا جودة الـ model، هي المكان الذي تنكسر فيه هذه الأنظمة عادةً.

والآن الجزء الذي تتخطّاه معظم الشروحات: في كثير من الأحيان أنت لا تحتاج إلى هذا أصلًا. فإن كانت مستنداتك تتّسع لمجلد على جهازك، افتح المجلد في Claude Code واسأل مباشرة. يقرأ Claude الملفات الفعلية — يبحث فيها، ويفتح ما يبدو ذا صلة، ويتتبّع الخيط — وهذا هو الـ retrieval نفسه، لكن دون pipeline تبنيه، ولا index تُبقيه متزامنًا، ولا بنية تحتية تدفع ثمنها. وللحالة الشائعة «لديّ ستون مستندًا وبعض الأسئلة»، هذا أبسط وأدقّ ومتاح بعد ظهر اليوم.

ومخرج النجاة الثاني هو الـ connector. فإن كانت المادة موجودة في Google Drive أو Notion أو نظام تذاكر أو database، فإن ربط Claude بتلك الأداة يمنحه بحثًا حيًّا في النظام الحقيقي، ويكون شخص آخر قد بنى طبقة الـ retrieval وتولّى صيانتها. فتحصل مجانًا على حداثة البيانات وعلى الـ permissions القائمة، وهذه ميزة معتبرة مقارنةً بنسخة من مستنداتك قابعة في vector database تتقادم ببطء.

فمتى يكون بناء RAG هو القرار الصحيح فعلًا؟ حين يكون الـ corpus أكبر بكثير من أن تسلّمه دفعة واحدة — ملايين المستندات، لا آلافها. وحين يحتاج كثيرون إلى الاستعلام منه في الوقت نفسه، بتكلفة منخفضة وسرعة عالية. وحين يجب أن يرى مستخدمون مختلفون مجموعات فرعية مختلفة. أو حين تبني منتجًا، لا تجيب عن أسئلتك أنت. وهذه الحالات مشروعة وشائعة، لكن كلًّا منها يجعل الـ RAG مشروعًا هندسيًا له مالك دائم، لا ميزة تشغّلها بضغطة. وإن عرض عليك أحدهم «RAG على بياناتك»، فالسؤالان الجديران بالطرح هما كيف تُقاس جودة الـ retrieval، وماذا يفعل النظام حين لا يجد شيئًا ذا صلة — لأن الإجابة عن السؤال الثاني هي مصدر الهراء الواثق.

المصطلحات

RAG Retrieval-augmented generation
إعطاء الذكاء الاصطناعي وسيلة للبحث عن الأشياء في مستنداتك أو database الخاصّ بك قبل أن يجيب، بدلًا من الاعتماد فقط على ما حفظه صدفةً أثناء الـ training. يسترجع النظام أولًا المقاطع القليلة الأكثر صلةً، ثم يسلّمها للـ model حتى تكون إجابته مرتكزة على مادّة مصدرية حقيقية وحديثة.
Embeddings
طريقة لتحويل النصّ — أو الصور — إلى قائمة طويلة من الأرقام تلتقط معناه، حتى يستطيع الحاسوب قياس مدى تشابه شيئين. القطع ذات المعاني المتقاربة ينتهي بها الأمر بأرقام متقاربة، حتى لو لم تشترك في أيّ كلمات: «car» و«automobile» يقعان قرب بعضهما؛ بينما «car» و«banana» يقعان بعيدًا. هذه هي الحيلة التي تجعل «البحث بالمعنى» ممكنًا بدلًا من مجرّد مطابقة الكلمات المفتاحية الدقيقة.
Vector database Vector store
database مبنيّ خصّيصًا لتخزين الـ embeddings — تلك القوائم من المعنى-كأرقام — وللعثور على أقرب المطابقات لاستعلام ما بشكل شبه فوري، حتى عبر ملايين المُدخلات. الـ database العادي بارع في عمليات البحث الدقيقة («اعثر على الطلب رقم 4821»)؛ أمّا الـ vector database فبارع في «اعثر على الأشياء الأقرب في المعنى لهذا».