LCEL (LangChain Expression Language) & Operatorul Pipe (|) în LangChain & LangGraph

Fundamente & Limbajul LCEL Nivel: începător

Sintaxa declarativă din LangChain care permite înlănțuirea componentelor (prompt, model, parser) folosind operatorul pipe (|) similar liniilor de comandă Unix.

Sintaxă & invocare Python
from langchain_core.output_parsers import StrOutputParser
chain = prompt | llm | StrOutputParser()
rezultat = chain.invoke({'domeniu': 'Python', 'intrebare': 'Ce este un decorator?'})

Descriere & Utilizare

LCEL (LangChain Expression Language) este modul modern în care se construiesc lanțurile (chains) în LangChain, înlocuind vechile clase rigide precum LLMChain.

Folosind supraîncărcarea operatorului | (pipe) din Python, ieșirea unei componente devine automat intrarea componentei următoare: dicționarul de variabile intră în prompt, lista de mesaje rezultată intră în llm, iar obiectul AIMessage intră în StrOutputParser() pentru a extrage direct șirul de text curat.

Orice lanț construit cu LCEL moștenește automat suport nativ pentru streaming end-to-end, execuție asincronă, reîncercări în caz de eroare (.with_retry()) și modele de rezervă (.with_fallbacks()).

Cum să o reții ușor

💡 Ca o linie de asamblare automatizată dintr-o fabrică sau ca operatorul pipe din terminalul Linux (`cat fisier.txt | grep eroare | sort`): fiecare stație prelucrează piesa și o dă mai departe pe banda rulantă.

Opțiuni și parametri tehnici

  • Fiecare element din lanț implementează interfața Runnable din langchain_core.
  • Expresia a | b | c construiește în spate un obiect RunnableSequence(first=a, middle=[b], last=c).
  • Propagă automat contextul de execuție și callback-urile de telemetrie pe întregul flux.

Exemple practice și cazuri de utilizare

  • Lanț clasic cu parsare text: chain = prompt | llm | StrOutputParser()
  • Adăugare model de rezervă (Fallback): robust_llm = openai_llm.with_fallbacks([anthropic_llm])
  • Transformare cu funcție personalizată: chain = prompt | llm | StrOutputParser() | (lambda text: text.upper())

Sfaturi de configurare & capcane

Folosește StrOutputParser() la capătul lanțurilor conversaționale uzuale pentru a primi direct un str curat în loc să accesezi manual raspuns.content de fiecare dată.

Comenzi și ghiduri înrudite