نظام RAG (Retrieval-Augmented Generation) أصبح العمود الفقري لتطبيقات الذكاء الاصطناعي في المؤسسات. في هذا المقال، نشاركك خبرتنا في بناء نظام RAG كامل من الصفر، بما في ذلك التحديات التي واجهناها وكيف تغلبنا عليها.
بدأنا هذا المشروع لأن عملاءنا كانوا يشكون من أن نماذج الذكاء الاصطناعي تقدم إجابات عامة غير دقيقة عندما نسألها عن معلومات محدمة تخص مؤسستهم. الحل كان نظام RAG الذي يجمع بين البحث في قاعدة بيانات والولادة اللغوية.
ما هو نظام RAG ولماذا نحتاجه؟
نظام RAG يعمل بأسلوب بسيط nhưng فعال: بدلاً من الاعتماد فقط على معرفة النموذج المدرب مسبقاً، يقوم النظام أولاً بالبحث في قاعدة بيانات المستندات الخاصة بك، ثم يرسل النتائج المسترجعة مع سؤالك إلى النموذج اللغوي ليولّد إجابة مبنية على معلومات حقيقية.
هيكل النظام التقني
النظام يتكون من أربعة مكونات رئيسية: جامع المستندات، والمُحوّل (Embeddings)، وقاعدة بيانات المتجهات، والمولّد اللغوي.
architecture.py
from openai import OpenAI
from pinecone import Pinecone
from langchain.text_splitter import RecursiveCharacterTextSplitter
client = OpenAI(api_key=os.environ[“OPENAI_API_KEY”])
pc = Pinecone(api_key=os.environ[“PINECONE_API_KEY”])
index = pc.Index(“knowledge-base”)
# Text splitter for chunking documents
splitter = RecursiveCharacterTextSplitter(
chunk_size=512,
chunk_overlap=50,
separators=[“nn”, “n”, ” “]
)
خطوات التنفيذ التفصيلية
الخطوة الأولى: تقسيم المستندات
نقوم بتقسيم المستندات إلى فقرات صغيرة (chunks) بحجم 512 رمز مع تداخل 50 رمز بين الفقرات المتتالية. هذا التداخل يضمن عدم فقدان المعلومات عند حدود التقسيم.
الخطوة الثانية: تحويل النصوص إلى متجهات
نستخدم نموذج text-embedding-3-large من OpenAI لتحويل كل فقرة إلى متجه أبعاده 3072. هذه المتجهات تمثل المعنى الدلالي للنص.
الخطوة الثالثة: تخزين المتجهات
نخزن المتجهات في Pinecone مع metadata يحتوي على مصدر الفقرة ورقم الصفحة والعنوان الفرعي.
الخطوة الرابعة: البحث والاسترجاع
عندما يُسألك المستخدم سؤالاً، نقوم أولاً بتحويل السؤال إلى متجه ثم البحث عن أقرب 5 متجهات في قاعدة البيانات.
الخطوة الخامسة: توليد الإجابة
نرسل السؤال مع المتجهات المسترجعة إلى GPT-4 مع تعليمات خاصة لتوليد إجابة مبنية على المصادر المُقدمة فقط.
النتائج والتكلفة
بعد التشغيل، حقق النظام دقة 94% في الإجابات مقارنة بـ 67% للنموذج بدون RAG. التكلفة الشهرية تبلغ حوالي $150 لقاعدة بيانات تحتوي على 100,000 مستند مع 10,000 استعلام شهرياً.
0 تعليق