LangChain، بناء تطبيقات AI بسرعة
دليل عملي لـLangChain: الأداة الأشهر لبناء تطبيقات LLM، مع أمثلة كود، Chains، Agents، LangGraph — from langchainopenai import ChatOpenAI from…
LangChain الأداة الأشهر عالمياً لبناء تطبيقات AI. من Prototype إلى Production، يُوفّر إطار العمل. هذا الدليل شامل، نظري + عملي.
الخلفية
التأسيس: أكتوبر 2022 المؤسّس: Harrison Chase النوع: Open Source (MIT License) الشركة الأمّ: LangChain, Inc. التمويل: 25 مليون$ (Sequoia، Benchmark) GitHub Stars: 100,000+ (2026)
الرؤية:
- توحيد تطوير LLM Applications
- تسريع الوصول من فكرة إلى منتج
- دعم كل النماذج والأدوات
لماذا LangChain
المشكلة قبل LangChain
كل نموذج له API مختلف:
- OpenAI:
openai.ChatCompletion.create(...) - Anthropic:
anthropic.messages.create(...) - Google:
genai.GenerativeModel.generate_content(...)
التبديل بين النماذج = إعادة كتابة كثير.
بناء RAG = عشرات المكوّنات (تقطيع، Embeddings، Vector DB، Retrieval، LLM call).
الحلّ
LangChain يوحّد:
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
# نفس الواجهة
gpt = ChatOpenAI(model="gpt-5.6")
claude = ChatAnthropic(model="claude-sonnet-5")
# نفس الاستخدام
gpt.invoke("مرحبا")
claude.invoke("مرحبا")
سطر واحد للتبديل.
البنية الأساسية
المكوّنات الرئيسية
1) LLMs / Chat Models:
- الواجهة الموحّدة للنماذج
- GPT، Claude، Gemini، Llama، DeepSeek، Mistral، إلخ
2) Prompts:
- Prompt Templates
- Few-Shot Examples
- Chat Prompts
3) Chains:
- تسلسل خطوات
- مثال: prompt → LLM → parse output
4) Memory:
- حفظ سياق المحادثات
- Short-term، Long-term
5) Retrievers:
- الاسترجاع من مصادر (RAG)
- Vector Stores، Search APIs
6) Agents:
- LLM يقرّر ما يفعل
- استخدام أدوات (tools)
7) Callbacks:
- Logging، Streaming، Monitoring
مكوّنات إضافية
8) Document Loaders:
- تحميل PDFs، Word، HTML، APIs
- 100+ loader مدعوم
9) Text Splitters:
- تقطيع النصوص للـRAG
- بذكاء (يحفظ السياق)
10) Embeddings:
- تحويل نصّ إلى vectors
- OpenAI، Cohere، Hugging Face، إلخ
11) Vector Stores:
- تخزين واسترجاع vectors
- Pinecone، Weaviate، Chroma، PGVector
12) Output Parsers:
- تحويل مخرج LLM لصيغة منظّمة
- JSON، Pydantic، إلخ
البدء العملي
التثبيت
pip install langchain langchain-openai
للـintegrations المحدّدة:
pip install langchain-anthropic
pip install langchain-google-genai
pip install langchain-community # كل شيء
أوّل مثال
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-5.6-luna",
api_key="sk-...",
temperature=0.7
)
response = llm.invoke("ما عاصمة السعودية؟")
print(response.content)
# "عاصمة المملكة العربية السعودية هي الرياض."
مع Prompt Template
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "أنت مساعد ذكيّ يجيب بالعربية الفصحى."),
("human", "{question}")
])
chain = prompt | llm
response = chain.invoke({"question": "ما أكبر مدن السعودية؟"})
print(response.content)
LangChain Expression Language (LCEL)
LCEL = طريقة تركيب مكوّنات LangChain بأسلوب Pipe.
from langchain_core.output_parsers import StrOutputParser
chain = prompt | llm | StrOutputParser()
# chain الآن تُخرج نصّاً مباشرة (بلا كائن)
answer = chain.invoke({"question": "..."})
الفائدة: قابل للـStream، Parallel، Batch.
RAG مع LangChain
مثال كامل
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# 1. تحميل PDFs
loader = PyPDFLoader("company_handbook.pdf")
docs = loader.load()
# 2. تقطيع
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=100
)
splits = text_splitter.split_documents(docs)
# 3. تخزين في Vector DB
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(splits, embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
# 4. Prompt
template = """أجب على السؤال بناءً على السياق التالي فقط.
إذا لم تجد الإجابة، قل "لا أعرف من المصادر المتاحة".
السياق:
{context}
السؤال: {question}
الجواب:"""
prompt = ChatPromptTemplate.from_template(template)
# 5. LLM
llm = ChatOpenAI(model="gpt-5.6-luna")
# 6. Chain كامل
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
rag_chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
# 7. الاستعلام
answer = rag_chain.invoke("ما مدّة الإجازة السنوية؟")
print(answer)
هذا RAG كامل في 40 سطراً.
Agents
Agent = LLM يقرّر ما يفعل بناءً على الحالة.
مثال Agent
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI
# 1. تعريف الأدوات
def calculator(expression: str) -> str:
"""يحسب تعبير رياضي"""
try:
return str(eval(expression))
except:
return "خطأ في الحساب"
def search_wikipedia(query: str) -> str:
"""يبحث في Wikipedia"""
# تنفيذ حقيقي بمكتبة
return f"نتائج بحث عن {query}"
tools = [
Tool(name="Calculator", func=calculator, description="لحسابات رياضية"),
Tool(name="Wikipedia", func=search_wikipedia, description="للبحث في Wikipedia")
]
# 2. Prompt
from langchain import hub
prompt = hub.pull("hwchase17/react")
# 3. Agent
llm = ChatOpenAI(model="gpt-5.6")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 4. استخدام
result = agent_executor.invoke({
"input": "ما ناتج ضرب 234 في 567؟ ثمّ اشرح لي في Wikipedia عن الرياضيات"
})
Agent يقرّر: "أحتاج Calculator أوّلاً، ثمّ Wikipedia".
LangGraph، Agentic Workflows
LangGraph (2024) = المستقبل الجديد لـAgents:
لماذا LangGraph
Agents التقليدية:
- خطية (سؤال → إجابة)
- صعبة التحكّم
- Debugging صعب
LangGraph:
- Graph structure، عقد وحواف
- حالة موحّدة (State)
- تحكّم دقيق
- قابل للتصحيح
مثال بسيط
from langgraph.graph import StateGraph, END
from typing import TypedDict
class State(TypedDict):
question: str
thought: str
answer: str
def think(state: State) -> State:
state["thought"] = f"فكّر في: {state['question']}"
return state
def answer(state: State) -> State:
state["answer"] = f"جواب: {state['thought']}"
return state
# بناء Graph
workflow = StateGraph(State)
workflow.add_node("think", think)
workflow.add_node("answer", answer)
workflow.set_entry_point("think")
workflow.add_edge("think", "answer")
workflow.add_edge("answer", END)
# تنفيذ
app = workflow.compile()
result = app.invoke({"question": "ما 2+2؟"})
print(result)
استخدامات LangGraph
- Multi-agent systems (وكلاء يتعاونون)
- Human-in-the-Loop (توقّف للتأكيد)
- Complex workflows (فروع، حلقات)
- Long-running tasks (يستطيع الاستئناف)
Memory
أنواع الذاكرة
1) ConversationBufferMemory:
- تحفظ كل المحادثة
- بسيط لكن يستهلك سياقاً
2) ConversationSummaryMemory:
- يلخّص المحادثة القديمة
- يوفّر توكنات
3) ConversationBufferWindowMemory:
- تحفظ آخر K رسائل فقط
4) VectorStoreRetrieverMemory:
- تحفظ في Vector DB، تسترجع الأهمّ
- للمحادثات الطويلة جدّاً
مثال
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
llm = ChatOpenAI(model="gpt-5.6-luna")
conversation = ConversationChain(llm=llm, memory=memory)
conversation.predict(input="مرحبا، اسمي أحمد")
conversation.predict(input="ما اسمي؟")
# الجواب: "اسمك أحمد"
LangSmith
منصّة LangChain للـObservability:
الميّزات
1) Tracing:
- كل تنفيذ يُسجَّل
- خطوة خطوة
- Debug بسيط
2) Prompt Management:
- Version control للـPrompts
- A/B Testing
3) Evaluation:
- Automated tests
- Human review
- Metrics
4) Monitoring:
- Costs
- Latency
- Errors
5) Datasets:
- بناء datasets للاختبار
- Iterations
الإعداد
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "ls_..."
# الآن كل تنفيذ يُسجَّل في LangSmith
الأسعار:
- Free: 5000 traces/شهر
- Pro: 39$/شهر (أعلى حدود)
- Enterprise: مخصّص
LangServe
لنشر تطبيقات LangChain كـAPIs:
from fastapi import FastAPI
from langserve import add_routes
app = FastAPI()
add_routes(app, my_chain, path="/my-chain")
# uvicorn main:app
# الآن API جاهز على /my-chain
الأثر: من prototype إلى Production في دقائق.
أنماط استخدام
1) Chatbot
from langchain.chains import ConversationChain
chatbot = ConversationChain(llm=llm, memory=memory)
2) Q&A على مستندات
# مثال RAG أعلاه
3) SQL Query Generation
from langchain_community.utilities import SQLDatabase
from langchain.chains import create_sql_query_chain
db = SQLDatabase.from_uri("postgresql://...")
chain = create_sql_query_chain(llm, db)
query = chain.invoke({"question": "كم عميلاً في السعودية؟"})
4) Content Generation
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template(
"اكتب مقال 500 كلمة عن {topic}"
)
chain = prompt | llm | StrOutputParser()
article = chain.invoke({"topic": "الطاقة المتجدّدة"})
5) Extraction
from pydantic import BaseModel # langchain_core.pydantic_v1 كان shim مؤقّتاً، أُزيل بعد ترقية LangChain لـPydantic v2
class Person(BaseModel):
name: str
age: int
email: str
structured_llm = llm.with_structured_output(Person)
result = structured_llm.invoke(
"استخرج: أحمد، 30 سنة، ahmed@example.com"
)
# Person(name='أحمد', age=30, email='ahmed@example.com')
LangChain في العربية
التحدّيات
- معظم Prompts الافتراضية بالإنجليزية
- بعض الـChains لا تعمل جيّداً بالعربية
- Embedding models للعربية أقلّ نضجاً
الحلول
1) Prompts بالعربية:
prompt = ChatPromptTemplate.from_template(
"أنت مساعد ذكيّ. أجب بالعربية الفصحى.\n\nالسؤال: {question}"
)
2) Embeddings للعربية:
- Cohere Embed Multilingual (تدعم العربية جيّداً)
- BGE-M3 (مفتوح)
- BAAI/bge-m3
3) اختبار عبر لغات:
- تأكّد أنّ chain يعمل بالعربية قبل الإطلاق
LangChain vs البدائل
vs LlamaIndex
| المعيار | LangChain | LlamaIndex |
|---|---|---|
| الشمول | أشمل | متخصّص |
| RAG | جيّد | الأعمق |
| Agents | قوي | جيّد |
| التوثيق | ممتاز | ممتاز |
| المجتمع | أكبر | كبير |
النتيجة: LangChain للتنوّع، LlamaIndex للـRAG المعقّد.
vs OpenAI Assistants API
| المعيار | LangChain | OpenAI Assistants |
|---|---|---|
| النماذج | متعدّدة | OpenAI فقط |
| التعقيد | متوسّط | أبسط |
| المرونة | كاملة | محدودة |
| الأنسب لـ | تطبيقات مخصّصة | prototypes سريعة |
vs Anthropic Tool Use
- Tool Use مدمج في Claude
- بسيط للاستخدامات الأساسية
- LangChain أشمل لتطبيقات معقّدة
vs بناء من الصفر
- LangChain يوفّر وقتاً كثيراً
- لكن قد يكون overhead لتطبيقات بسيطة
- قاعدة: إذا تحتاج ميّزة واحدة، اكتبها بنفسك. لتطبيق كامل، استخدم LangChain.
متى LangChain
استخدمه إذا
- تبني تطبيقاً كامل الميّزات (RAG + Agents + Memory)
- تستخدم أكثر من نموذج
- تحتاج تكاملات جاهزة (Vector DBs، APIs)
- تخطّط للـScale (LangSmith، LangServe)
لا تستخدمه إذا
- استدعاء بسيط لـLLM
- نموذج واحد ثابت
- تحتاج تحكّماً منخفض المستوى تماماً
- Enterprise حسّاس (قد تُفضّل بناء داخلي)
المستقبل
الاتّجاهات
LangGraph تسود:
- بناء وكلاء أعمق
- Multi-agent systems
Agent Standards:
- MCP (Model Context Protocol) من Anthropic
- LangChain يدعم
Enterprise Adoption:
- شركات كبرى تتبنّى
- LangChain Business يكبر
Community:
- 100,000+ نجمة تكبر
- Contributions مستمرّة
نصائح للمطوّر السعودي
1) ابدأ بسيطاً
- لا تحاول تعلّم LangGraph من اليوم الأوّل
- ابدأ بـLCEL
2) استخدم Ollama محلياً
from langchain_ollama import OllamaLLM # langchain_community.llms.Ollama قديم (deprecated منذ 0.3.1)
llm = OllamaLLM(model="llama3.2")
مجاناً، خصوصية كاملة.
3) LangSmith Free
- 5000 traces/شهر
- كافٍ للتعلّم
4) اقرأ Cookbooks
- LangChain Cookbook: أمثلة كاملة
- الأنسب للتعلّم العملي
5) الشراكة مع Cursor
- Cursor + LangChain = سرعة تطوير هائلة
المصادر الرسمية
اقرأ أيضاً: RAG، التعزيز بالاسترجاع · OpenAI API، دليل البدء · MCP، بروتوكول سياق النموذج · Fine-tuning و LoRA
الأسئلة الشائعة
إطار عمل مفتوح المصدر (Python + JavaScript) لبناء تطبيقات LLM. أُنشئ 2022 من قِبل Harrison Chase. **الأشهر عالمياً** لـLLM Development. يوفّر: تكامل مع كل النماذج (OpenAI, Anthropic, Google, DeepSeek)، RAG، Agents، Chains، Memory. **مجاني**. الشركة الأمّ تحصل على تمويل من عقود Enterprise.
أبرزها: **يوحّد** الوصول لنماذج مختلفة (تبديل من GPT إلى Claude بسطر واحد)، **مكتبات جاهزة** للـRAG، Agents، **مجتمع ضخم** (100K+ GitHub stars)، **توثيق ممتاز**، **إنتاجي** (LangSmith للـMonitoring، LangServe للـDeployment).
**LangChain**: شامل، Chains، Agents، RAG، Memory، Tools. **LlamaIndex**: متخصّص في RAG وData indexing. **الاستخدام**: LangChain للتطبيقات المتنوّعة، LlamaIndex للـRAG المعقّد. **يمكن دمجهما**. LangChain الأشمل، LlamaIndex الأعمق في مجاله.
امتداد LangChain (2024) لبناء **Agentic Workflows**. يستخدم Graph structure، كل عقدة تفعل شيئاً، الحواف تحدّد المسار. **الأنسب لـ**: multi-step reasoning، وكلاء يستخدمون أدوات متعدّدة، workflows معقّدة. الأشهر في الوكلاء المتقدّمة.
متوسّط الصعوبة. **يحتاج**: Python أساسي، فهم LLMs، معرفة APIs. **إذا مبتدئ**: ابدأ بـChatGPT + Custom GPTs. **إذا مطوّر**: LangChain في أسبوع. **بدائل أبسط**: OpenAI Assistants API، Anthropic Tool Use، أقلّ مرونة، أسهل.
منصّة LangChain للـobservability والتقييم. تُتيح: (1) **Debug** التطبيقات، (2) **Monitor** الاستخدام والأداء، (3) **Evaluate** الجودة (Automated + Human)، (4) **Prompt Management**، (5) **Cost Tracking**. **مجانياً بحدود، مدفوع للـEnterprise**.
أبرزها: استدعاء واحد بسيط لـChatGPT (استخدم requests أو OpenAI SDK)، تطبيق صغير جدّاً، تحتاج نموذجاً واحداً فقط ولا تخطّط للتبديل، استخدام مؤسّسي حسّاس (LangChain overhead كبير أحياناً).
ضمن سلسلة: البناء بالذكاء الاصطناعي
المقال 3 من 15الـAPI، RAG، قواعد البيانات المتجهية، الضبط الدقيق، الوكلاء المتعدّدون، وMCP.
- 1.OpenAI API، دليل البدء والتسعيرالدليل الشامل
- 2.أكواد استدعاء APIs الذكاء الاصطناعي، OpenAI، Anthropic، Google
- 3.LangChain، بناء تطبيقات AI بسرعة
- 4.RAG، تعزيز الذكاء الاصطناعي بالاسترجاع
- 5.قواعد المتّجهات (Vector Databases)، دليل شامل
- 6.Fine-tuning و LoRA، تخصيص نماذج AI
- 7.Fine-tuning للنماذج اللغوية: LoRA و QLoRA و Full Fine-tuning
- 8.MLOps، تشغيل نماذج AI في الإنتاج
- 9.أنظمة الوكلاء المتعدّدين (Multi-Agent): AutoGen و CrewAI و LangGraph
- 10.الأنظمة متعدّدة الوكلاء، AutoGen و CrewAI و LangGraph
- 11.MCP، بروتوكول سياق النموذج
- 12.مزوّدو السحابة للـAI، AWS، Azure، Google Cloud
مقالات ذات صلة
مصطلحات الذكاء الاصطناعي، قاموس المبتدئ
شرح 30 مصطلح ذكاء اصطناعي شائع 2026 بلا تعقيد تقني: LLM، Token، Prompt، Hallucination، RAG، Agent، وأكثر — مصطلحات الذكاء الاصطناعي قد تبدو مخيفة، لكن…
Midjourney، دليل التسجيل والاستخدام 2026
دليل عملي لـMidjourney: التسجيل، الاشتراك، البرومتات، الميزات المتقدّمة، مع أمثلة سعودية — Midjourney أشهر أداة توليد صور فنية عالمياً.
الذكاء الاصطناعي في التمويل الإسلامي، التحدّيات والفرص
كيف يُستخدم AI في التمويل الإسلامي: كشف الربا، توافق الاستثمارات، الزكاة الذكيّة، الصكوك، مع السعودية كنموذج — النموذج يقرأ التقرير المالي 2.
دليل أجودا (Agoda) للمسافر السعودي ٢٠٢٦: الفنادق والطيران في منصّة واحدة
كيف تعمل منصّة أجودا، مين يملكها، وليش يستخدمها ملايين المسافرين لمقارنة أسعار الفنادق والطيران معاً قبل الحجز من السعودية.
حاسبة التمويل الشخصي ونسبة الاستقطاع في السعودية ٢٠٢٦
حاسبتان تفاعليتان: قسط التمويل الشخصي وفق معادلة الاستهلاك القياسية، وأقصى قسط شهري تقدر عليه نظاماً حسب نسبة الاستقطاع الرسمية من دليل ساما التنظيمي.
دليل ناجز ٢٠٢٦، الخدمات القضائية والوكالات الإلكترونية
شرح كامل لمنصّة ناجز التابعة لوزارة العدل: إصدار الوكالات، رفع الدعاوى، الاعتراض، تنفيذ الأحكام، والصكوك العقارية إلكترونياً.