Qué es un Chain en LangChain

Tiempo de lectura: 2 minutos

¿Qué es un «Chain» (Cadena) en LangChain?

Cadenas oxidadas - pexels

Es una instrucción concreta:

llm_chain = prompt | llm | output_parser

Es un ejemplo perfecto y moderno de lo que significa un Chain en la arquitectura de LangChain (específicamente usando el LangChain Expression Language o LCEL).

Definición de Chain

Un Chain (Cadena) en LangChain es la secuencia estructurada de pasos o componentes que toma una entrada, la procesa a través de uno o más módulos, y produce una salida.

Piensa en un Chain como una línea de montaje para tareas complejas de LLM. En lugar de ejecutar cada componente (prompt, llamada al modelo, procesamiento) por separado, los encadenas para que la salida de un paso se convierta automáticamente en la entrada del siguiente.

En el ejemplo llm_chain = prompt | llm | output_parser se ilustra la cadena más fundamental, que reemplaza al antiguo LLMChain:

Paso (Componente)Propósito en la Cadena
1. prompt (Input)Toma la entrada del usuario (ej: {"concepto": "Machine Learning"}). Es el primer eslabón.
**2. `` (Pipe)**
3. llm (Procesamiento)Es el modelo de lenguaje (tu Ollama remoto). Recibe el prompt finalizado y lo ejecuta, generando una respuesta de texto crudo.
**4. `` (Pipe)**
5. output_parser (Output)Procesa la salida del LLM. En tu caso, StrOutputParser toma la respuesta del modelo y asegura que sea un string limpio, preparándola para la salida final.

La Ejecución Paso a Paso

Cuando llamas a llm_chain.invoke({"concepto": "Machine Learning"}), sucede lo siguiente:

  1. Entrada: El diccionario {"concepto": "Machine Learning"} entra al prompt.
  2. Prompt: El prompt usa esa entrada para construir el mensaje final: «Actúa como un asistente de datos. Explica en dos frases el concepto de Machine Learning
  3. LLM: El prompt (el texto final) pasa al llm (Ollama remoto).
  4. Generación: Ollama ejecuta el prompt y genera una respuesta (ej: «El aprendizaje automático es una rama de la IA…»).
  5. Parser: La respuesta del LLM pasa al output_parser.
  6. Salida: El string limpio es la salida final que se asigna a la variable response.

¿Por Qué Usar Chains (o LCEL)?

  • Modularidad: Puedes cambiar fácilmente el modelo (llm), el prompt o el parser sin reescribir la lógica de la aplicación.
  • Complejidad: Permite crear arquitecturas muy complejas (como agentes RAG o complejos procesos de toma de decisiones) simplemente encadenando más pasos: Prompt -> LLM -> Tool -> Prompt -> LLM...
  • Transparencia: Hace que el flujo de datos sea claro y fácil de seguir.
  • Eficiencia (LCEL): Las cadenas construidas con LCEL son altamente optimizadas para rendimiento, streaming y ejecución asíncrona.

Deja un comentario