المستوى: مبتدئ
Claude مش عارف اسم مديرك، ولا سياسة الإجازات في شركتك، ولا أكواد المنتجات اللي بتبيعها. لو سألته في أي حاجة من دي هيتلخبط ويخترع إجابة بثقة كاملة. الحل اسمه RAG، وبيخلّيه يقرا وثائقك قبل ما يرد، في 25 سطر Python.
المشكلة باختصار
تخيّل بنيت chatbot بـ Claude لقسم الدعم الداخلي في شركة logistics. موظف جديد بيسأل "كم بدل البنزين الشهري في 2026؟" والـ bot بيرد "حوالي 800 جنيه" بثقة. الرقم مخترع. السبب: Claude اتدرّب على الإنترنت العام لحد يناير 2026، مش على ملف policy.pdf اللي عند HR.
القاعدة بسيطة: أي معلومة إنت تعرفها وغير منشورة على الإنترنت، الـ LLM ما يعرفهاش. ده ينطبق على وثائق داخلية، أكواد منتجات، تذاكر دعم سابقة، عقود قانونية، أو أي بيانات خاصة بشركتك. الـ fine-tuning حل ممكن، لكنه مكلّف، محتاج آلاف الأمثلة، وكل ما الوثائق تتغيّر لازم تعيد التدريب. RAG بديل أبسط، أسرع، وأرخص بـ 30x تقريبًا.
المفهوم بمثال أمين المكتبة
تخيّل دكتور تاريخ شاطر جدًا في عصر النهضة، لكنه قاعد في مكتبه من 30 سنة وما قراش جريدة. لو سألته "إيه آخر اكتشاف في علم الفلك؟" هيخمّن ويغلط، مش لأنه غبي، لأن المعلومة مش في دماغه أصلاً. لكن لو حطّيت جنبه أمين مكتبة شاطر بيدوّر على الكتب المتعلقة بسؤالك في 3 ثواني ويسلّمها للدكتور قبل ما يرد، الإجابة هتطلع دقيقة.
RAG بيشتغل بنفس المنطق بالظبط. الدكتور هو Claude، وأمين المكتبة هو نظام البحث في وثائقك، والكتب هي PDFs و Notion و Confluence والتذاكر اللي عندك. كل سؤال بيدخل: نبحث الأول، نلاقي أقرب 5 فقرات للسؤال، نحطّها في الـ prompt مع السؤال، وبعدين Claude يرد.
التعريف العلمي
RAG اختصار Retrieval-Augmented Generation. مصطلح ظهر أول مرة في ورقة Lewis et al. 2020 من Meta AI. الفكرة الجوهرية: بدل ما النموذج يعتمد على أوزانه الداخلية بس (parametric memory)، بنوصّله بـ external knowledge base، ويعمل retrieval قبل الـ generation (non-parametric memory).
الخطوات تحت الكابوت 3:
- Embedding: كل فقرة في وثائقك بتتحوّل لمتجه أرقام (vector) طوله 384 أو 1024 أو 1536 رقم. النصوص اللي معناها قريب بتطلع متجهاتها قريبة في الفضاء الرياضي. "بدل البنزين" و"حوافز الوقود" بتطلع جنب بعض، حتى لو الكلمات مختلفة.
- Retrieval: السؤال نفسه بيتحوّل لمتجه بنفس النموذج، وبنحسب أقرب 5 فقرات بـ
cosine similarity. - Generation: الـ 5 فقرات دول بيتحطّوا في system prompt مع السؤال، Claude يرد بناءً عليهم وبس.
كود شغّال في 25 سطر
المثال ده بياخد مجلد PDFs، يعملهم index، ويرد على أي سؤال منها. شغّال على Python 3.11 + SDK 0.45+ + 0.5+. مفيش mock، مفيش placeholder، انسخ وشغّل.