بناء RAG بسيط باستخدام FAISS أو Chroma
اكتب 40 سطرًا من Python: أنشئ embedding للاستعلام، واسترجع أقرب K مقاطع، وأدرجها في المطالبة، ثم اسأل LLM.
بناء RAG بسيط باستخدام FAISS أو Chroma درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
RAG من 40 سطرًا
أصبح لديكم الآن جميع المكوّنات. سنجمعها في RAG ساذج يعمل على مجموعة صغيرة من المستندات.
Step 1: Install
# pip install openai chromadbStep 2: Sample Corpus
docs = [
'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
'NumPy is a Python library used for working with arrays and numerical computing.',
'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
print(f"{i+1}. {d[:50]}...")
Step 3: Set Up Chroma
import chromadb
from openai import OpenAI
client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()Step 4: Embed and Store
embed_response = openai_client.embeddings.create(
model='text-embedding-3-small',
input=docs
)
vectors = [d.embedding for d in embed_response.data]
collection.add(
ids=[f'd{i}' for i in range(len(docs))],
embeddings=vectors,
documents=docs
)Step 5: Embed the Query
query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
model='text-embedding-3-small',
input=query
).data[0].embeddingStep 6: Retrieve Top-K
results = collection.query(
query_embeddings=[query_vec],
n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']Step 7: Build the RAG Prompt
context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.
Context:
{context}
Question: {query}
'''Step 8: Call the LLM
response = openai_client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
temperature=0,
)
print(response.choices[0].message.content)بديل FAISS
إذا أردتم حلاً محليًا بالكامل دون خادم قاعدة بيانات، فإن FAISS أبسط حتى:
import faiss
import numpy as np
index = faiss.IndexFlatIP(1536) # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))
D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]قيود RAG الساذج هذا
- لا يوجد تقسيم إلى مقاطع — لا يعمل إلا مع المستندات القصيرة
- لا توجد إعادة ترتيب
- لا توجد تصفية للبيانات الوصفية
- لا يوجد تقييم
سنعالج كل هذه القيود في الدورات اللاحقة.
التكلفة لكل استعلام
لكل استعلام تنفّذونه:
- استدعاء واحد لإنشاء التضمين (نحو $0.00002)
- إكمال محادثة واحد مع سياق من نحو 500 رمز (نحو $0.0001)
الإجمالي: نحو 1/100 من السنت لكل سؤال.
أطلقه وكرّر التحسين
هذا النظام المكوّن من 40 سطرًا من RAG يتفوّق بالفعل على معظم روبوتات الدردشة التي لا تستخدم سياقًا في الإجابات الواقعية عن بياناتك. أطلقه، وراقب كيف يعطّله المستخدمون، ثم أضف التقنيات المتقدمة حيث تحقق أكبر أثر.
Top-K في RAG الساذج
ماذا يعني استرجاع "top-K"؟
مراجعة
لقد بنيتم نظام RAG. سنلقي نظرة بعد ذلك على قواعد بيانات المتجهات التي توسّع هذا النظام ليتجاوز حاسوبًا محمولًا واحدًا.
تعلم AI Agents مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 60
- الدروس
- 239
الأسئلة الشائعة
هل درس «بناء RAG بسيط باستخدام FAISS أو Chroma» مجاني؟
نعم — نص درس «بناء RAG بسيط باستخدام FAISS أو Chroma» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.
ماذا ستتعلم في «بناء RAG بسيط باستخدام FAISS أو Chroma»؟
اكتب 40 سطرًا من Python: أنشئ embedding للاستعلام، واسترجع أقرب K مقاطع، وأدرجها في المطالبة، ثم اسأل LLM. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟
لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «بناء RAG بسيط باستخدام FAISS أو Chroma»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟
نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما الذي يحله RAG (حدود المعرفة والهلوسة)
- استراتيجيات تقسيم النص (ثابت، جُملي، دلالي)
- فهرسة مجموعة مستندات
- بناء RAG بسيط باستخدام FAISS أو Chroma