Antes de LCEL, encadenar pasos en LangChain significaba anidar clases y configuraciones. Con el operador pipe, una cadena se lee de izquierda a derecha, literalmente como se piensa.
LCEL es una abstracción de conceptos interesantes de Python en un formato que habilita una capa de código minimalista para construir cadenas de componentes de LangChain. Las cadenas se construyen conectando Runnables con el operador pipe `|`, creando un flujo de datos claro de izquierda a derecha — el operador `|` compone dos Runnables en un RunnableSequence, que a su vez es también un Runnable, permitiendo componer cadenas de cadenas sin límite de anidación conceptual.
LCEL soporta streaming incremental para permitir un tiempo hasta el primer token más rápido desde los modelos de lenguaje, mejorando la capacidad de respuesta percibida. LCEL integra streaming de forma nativa y está diseñado desde el principio pensando en esto — no es una capa agregada después, es parte de la arquitectura base de cómo funciona una cadena.
Usar `.with_fallbacks()` da resiliencia real: si el modelo primario falla, un modelo de respaldo toma el control automáticamente. El comportamiento de reintento y fallback (`.with_retry()`, `.with_fallbacks()`) y el tracing de LangSmith aplican a la cadena compuesta automáticamente, sin tener que tocar cómo están escritos los pasos individuales — agregás resiliencia envolviendo la cadena, no reescribiendo su lógica interna.
LCEL simplifica la creación de cadenas complejas de operaciones, permitiendo tanto ejecución síncrona como asíncrona mientras soporta funciones avanzadas como streaming, reintentos, y fallbacks — la misma cadena definida con `.invoke()` funciona con `.ainvoke()` para el equivalente asíncrono, sin necesitar dos implementaciones separadas.
Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.
Contactar a Carlos Montiel