0Pricing
AI Agents · درس

LCEL (لغة تعبيرات LangChain)

ألّف runnables باستخدام عامل الأنبوب «|»، واستخدم RunnablePassthrough، وابثّ النتائج عبر السلسلة.

LCEL (لغة تعبيرات LangChain) درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

ما هي LCEL؟

لغة تعبيرات LangChain هي الطريقة الحديثة لتركيب السلاسل. وتستخدم عامل الأنبوب | لربط العناصر القابلة للتشغيل.

وقد حلّت محل فئات "Chain" القديمة، مثل LLMChain وSequentialChain، التي أصبحت قديمة الآن.

A Basic LCEL Chain

from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain.schema.output_parser import StrOutputParser

prompt = ChatPromptTemplate.from_template('Translate {text} to French.')
model = ChatOpenAI(model='gpt-4o-mini')
parser = StrOutputParser()

chain = prompt | model | parser
print(chain.invoke({'text': 'Hello, world!'}))

RunnablePassthrough

مرّر الإدخال دون تغيير. يفيد ذلك في الاحتفاظ بالبيانات إلى جانب استدعاء LLM:

from langchain_core.runnables import RunnablePassthrough

chain = (
    {'context': retriever, 'question': RunnablePassthrough()}
    | prompt
    | model
    | parser
)
chain.invoke('What is RAG?')

RunnableParallel

شغّل عدة عناصر قابلة للتشغيل بالتوازي؛ وتصبح مخرجاتها قاموسًا:

from langchain_core.runnables import RunnableParallel

chain = RunnableParallel(
    summary=summary_prompt | model | parser,
    keywords=keywords_prompt | model | parser
) | merge_prompt | model | parser

result = chain.invoke({'text': '...'})

RunnableLambda

غلّف أي دالة Python داخل عنصر قابل للتشغيل:

from langchain_core.runnables import RunnableLambda

def uppercase(text: str) -> str:
    return text.upper()

chain = prompt | model | parser | RunnableLambda(uppercase)

Streaming Through LCEL

for chunk in chain.stream({'text': 'Hello'}):
    print(chunk, end='', flush=True)

التنفيذ على دفعات والتنفيذ غير المتزامن

يدعم كل عنصر قابل للتشغيل batch وainvoke وastream:

results = chain.batch([
    {'text': 'a'}, {'text': 'b'}, {'text': 'c'}
])
# All three run in parallel.

المخططات

أضفوا تلميحات الأنواع — تتحقق LCEL من صحة المدخلات والمخرجات:

from pydantic import BaseModel

class Input(BaseModel):
    text: str

class Output(BaseModel):
    translation: str

chain = chain.with_types(input_type=Input, output_type=Output)

with_config والبدائل الاحتياطية

ثبّتوا النموذج، واضبطوا عمليات إعادة المحاولة، وأضيفوا نموذجًا احتياطيًا:

fast = ChatOpenAI(model='gpt-4o-mini')
big = ChatOpenAI(model='gpt-4o')

chain = prompt | fast.with_fallbacks([big]) | parser

with_retry

class Chain:
    def invoke(self, x):
        return f'processed: {x}'
    def with_retry(self, stop_after_attempt=3, wait_exponential_jitter=True):
        print(f'Chain will retry up to {stop_after_attempt} times with jittered backoff')
        return self

chain = Chain()
chain = chain.with_retry(stop_after_attempt=3, wait_exponential_jitter=True)
print(chain.invoke('input data'))

بناء سلسلة RAG

تجميع المكونات معًا:

rag_chain = (
    {'context': retriever | format_docs, 'question': RunnablePassthrough()}
    | rag_prompt
    | model
    | StrOutputParser()
)

def format_docs(docs):
    return '\n\n'.join(d.page_content for d in docs)

rag_chain.invoke('What is in the handbook?')

تصحيح أخطاء LCEL

افحصوا الخطوات الوسيطة:

chain.get_graph().print_ascii()

# Or run step-by-step:
for step in chain.stream_log({'text': '...'}):
    print(step)

عامل الأنبوب

ما دور RunnablePassthrough في LCEL؟

مراجعة

تُعد LCEL أساس LangChain الحديثة. تعلّموا استخدام Pipe وParallel وLambda وPassthrough، وستتمكنون من بناء أي سلسلة.

الأسئلة الشائعة

هل درس «LCEL (لغة تعبيرات LangChain)» مجاني؟

نعم — نص درس «LCEL (لغة تعبيرات LangChain)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «LCEL (لغة تعبيرات LangChain)»؟

ألّف runnables باستخدام عامل الأنبوب «|»، واستخدم RunnablePassthrough، وابثّ النتائج عبر السلسلة. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «LCEL (لغة تعبيرات LangChain)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بنية LangChain: النماذج والمطالبات والسلاسل
  2. أدوات التحميل والتقسيم ومخازن المتجهات
  3. LCEL (لغة تعبيرات LangChain)
  4. بناء سلسلة RAG من البداية إلى النهاية
← العودة إلى AI Agents