- الذكاء الاصطناعي
- RAG
- الهندسة
RAG لدعم العملاء: كيف تجعل ردود الذكاء الاصطناعي دقيقة فعلاً
النموذج اللغوي الكبير (LLM) وحده يختلق إجابات تبدو معقولة. أما التوليد المعزز بالاسترجاع (RAG) فيبني إجابات الذكاء الاصطناعي على محتواك أنت. إليك كيف يفعل AskAIs ذلك، خطوة بخطوة.
فريق AskAIs
7 دقائق للقراءة
اسأل نموذج LLM وحده «كيف أعيد تعيين كلمة المرور؟» وستحصل على إجابة تبدو معقولة لكنها على الأرجح خاطئة: زر مختلف، وخطوات مختلفة، ورابط مختلف. يعالج RAG (التوليد المعزز بالاسترجاع) ذلك بوضع المقاطع المناسبة من محتواك في الموجّه (prompt) قبل أن يجيب النموذج.
المسار في لمحة
ثلاث مراحل: الإدخال، والاسترجاع، والتوليد.
1. الإدخال
- ارفع ملفات PDF أو DOCX أو TXT أو Markdown أو CSV أو JSON، أو ازحف على موقعك الإلكتروني، أو أضف أزواج أسئلة وأجوبة في Training.
- تستخرج عملية خلفية (worker) النص وتقسّمه إلى مقاطع من نحو 2000 حرف (قرابة 500 رمز token)، مع تداخل بطول 200 حرف. ويبقى كل زوج من الأسئلة والأجوبة مقطعًا واحدًا.
- يُنشأ تضمين لكل مقطع باستخدام
text-embedding-3-small(بـ 1536 بُعدًا). - تُخزَّن المقاطع في PostgreSQL مع الامتداد
pgvectorوفهرس HNSW لمسافة جيب التمام.
2. الاسترجاع
عندما تحتاج رسالة الزائر إلى معلومات، ننشئ تضمينًا لرسائله الأخيرة ونجري بحثًا بمسافة جيب التمام في مقاطع مساحة العمل. وتتخطى التحيات والدردشة العابرة هذه الخطوة. إليك نسخة مبسّطة من الاستعلام:
-- Simplified. The real query also checks that the document is
-- ready, enabled, in date and visible on the visitor's platform.
SELECT c.id, c.content,
1 - (c.embedding <=> $1::vector) AS similarity
FROM knowledge_chunks c
WHERE c.tenant_id = $2
ORDER BY c.embedding <=> $1::vector
LIMIT $3; -- 3 × top-K candidates, re-ranked afterwardsنجلب ثلاثة أضعاف عدد المرشحين الذي نحتاج إليه، ونعيد ترتيبهم، ونستبعد كل ما يقل عن حد التشابه (نحو 0.3)، ونُبقي على مقطعين على الأكثر من كل مستند، ثم نمرّر أفضل خمسة (افتراضيًا) إلى النموذج.
3. التوليد
تُضاف المقاطع إلى موجّه النظام داخل كتلة مرجعية محاطة بفواصل. ويُطلب من النموذج أن يعامل هذه الكتلة على أنها بيانات لا تعليمات، وألا يستخدم من المراجع إلا ما يجيب عن السؤال، وألا يختلق معلومات عن المنتج غير موجودة فيها.
إذا سأل زائر عن معلومة تخص المنتج ولم يُعثر على شيء ذي صلة، فلا يُستدعى النموذج إطلاقًا: يُبلَّغ الزائر بأن المعلومة غير متاحة، وتنتقل الدردشة إلى شخص، ما لم يكن التحويل التلقائي متوقفًا.
إبقاء التكلفة منخفضة
ثلاثة أمور تُبقي تكلفة قاعدة المعرفة الكبيرة في المتناول:
- ذاكرة التضمينات المؤقتة: نص البحث نفسه يحصل على التضمين نفسه. المفتاح هو اسم النموذج مع تجزئة SHA-1 للنص، ويُحفظ في Redis لمدة 24 ساعة.
- التخزين المؤقت للموجّه: مع نماذج Claude يطلب الطلبُ المرسل إلى Anthropic تخزين الموجّه مؤقتًا، وتخزّن OpenAI الموجّهات الطويلة مؤقتًا تلقائيًا. وبما أن الكتلة المرجعية تتغير مع كل رد، فإن الجزء الثابت من الموجّه هو المستفيد الأكبر.
- التخطي بحسب الحد: إذا لم يتجاوز أي مقطع الحد، فلا يُضاف شيء إلى الموجّه.
عندما لا يكفي RAG
يتعامل RAG جيدًا مع أسئلة «كيف أفعل…؟». لكنه لا يستطيع الإجابة عن «أين طلبي؟»، لأن هذه البيانات ليست في مستنداتك.
لهذا يوفّر AskAIs ميزة Custom tools: تصف نقطة نهاية HTTP في نظامك، مثل الطلبات أو الحجوزات أو المخزون، ويمكن للذكاء الاصطناعي استدعاؤها أثناء كتابة الرد. فتُجاب الأسئلة العامة من معرفتك، والأسئلة الشخصية من أنظمتك، ويذهب الباقي إلى فريقك.