تعلّم LangChain وRAG: دليل برمجي للمبتدئين خطوة بخطوة

Share:

هل تمنيت يومًا أن يعرف ChatGPT بياناتك الخاصة؟ هنا يبرز دور LangChain وRAG (التوليد المعزز بالاسترجاع). معًا، يتيحان لأنظمة الذكاء الاصطناعي إمكانية البحث في مستنداتك، وفهمها، وتوليد إجابات ذكية وسياقية.

في هذا الدليل العملي، ستقوم بـ:

  • تعلم المفاهيم الأساسية لـ RAG
  • استخدام LangChain لتحميل والبحث في ملفاتك الخاصة
  • بناء روبوت أسئلة وأجوبة يعمل بالذكاء الاصطناعي باستخدام OpenAI + FAISS

🔧 المتطلبات الأساسية

قبل أن تبدأ، ثبّت الحزم التالية في بيئة Python الخاصة بك:

bashCopyEditpip install langchain openai faiss-cpu python-dotenv

أنشئ أيضًا ملف .env يتضمن مفتاح OpenAI API الخاص بك:

iniCopyEditOPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx

🧑‍💻 الكود الأساسي لبدء العمل بـ LangChain وRAG

pythonCopyEdit# ✅ خط أنابيب RAG باستخدام LangChain + FAISS + OpenAI
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

# 📄 تحميل المستندات
loader = TextLoader("./docs/tutorial.txt")
raw_documents = loader.load()

# ✂️ تقسيم المستندات
splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
documents = splitter.split_documents(raw_documents)

# 🔐 إنشاء قاعدة بيانات المتجهات
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(documents, embeddings)

# 🔍 طرح الأسئلة عبر RAG
retriever = vectorstore.as_retriever()
qa = RetrievalQA.from_chain_type(
    llm=OpenAI(temperature=0),
    chain_type="stuff",
    retriever=retriever,
    return_source_documents=True
)

query = "What is LangChain used for?"
result = qa({"query": query})

print("nالإجابة:", result["result"])
print("nالمصادر:", result["source_documents"])

📊 رسم توضيحي: مكونات بايبلاين LangChain

ما يوضحه:
كيف يتفاعل LangChain مع المستندات وقاعدة بيانات المتجهات (Vector DB) والباحث (Retriever) والنموذج اللغوي لإنتاج إجابات قائمة على الذاكرة اللحظية للمستندات.


📋 جدول مقارنة: أدوات RAG في لمحة

الميزةLangChain + FAISSHaystack
سهولة الاستخدامعالية جداًمتوسطة
دعم النماذج اللغويةOpenAI، Anthropic، Hugging FaceOpenAI، Hugging Face
خيارات قواعد المتجهاتFAISS، Pinecone، ChromaFAISS، Elasticsearch
التوثيقدروس مكثفة ومجتمع نشطموثّق جيدًا، ومناسب للمؤسسات
حالات الاستخدامروبوتات دردشة، بحث داخلي، أسئلة على ملفات PDFأنظمة RAG للمؤسسات، خطوط معالجة، روبوتات QA
المجتمعينمو بسرعةناضج

🖼️ فكرة مخطط معلوماتي: “تدفق RAG مع LangChain”

الأقسام:

  1. تحميل المستندات
  2. التقسيم وإنشاء التضمينات (Embeddings)
  3. تخزينها في قاعدة بيانات متجهية
  4. البحث والرد باستخدام سلسلة QA
  5. توليد الرد بواسطة النموذج اللغوي

✅ جربه بنفسك


🏁 الخاتمة

يمنحك دمج LangChain مع RAG ذاكرة حقيقية لتطبيقات الذكاء الاصطناعي، ما يتيح لها الإجابة على الأسئلة بناءً على محتواك الخاص. هذه مجرد البداية — يمكنك لاحقًا دمج واجهة مستخدم (مثل Streamlit)، دعم ملفات متعددة، أو إضافة أدوات ووكلاء عبر LLM.

Share:

هل كان هذا الشرح مفيداً؟