Creación de Prompts Dinámicos con LangChain

Clase 5 de 37Curso de LangChain

Contenido del curso

Introducción a LangChain

Manejo de documentos con índices

Embeddings y bases de datos vectoriales

Chats y memoria con LangChain

Resumen

Construir aplicaciones con modelos de lenguaje requiere mucho más que escribir una pregunta directa. Los prompt templates son la herramienta fundamental para estructurar la información que recibe un modelo, controlar su comportamiento y preparar todo para un entorno de producción. A continuación se explica cómo funcionan, qué componentes los integran y cómo LangChain los convierte en piezas dinámicas y reutilizables.

¿Cuáles son los cuatro componentes de un prompt template?

Un prompt template se compone de cuatro partes principales [0:08]:

  • Instrucciones: la indicación que le dice al modelo cómo debe comportarse. Por ejemplo, responder solo con la información proporcionada y, si no sabe, admitirlo abiertamente.
  • Contexto o información externa: datos que el modelo debe recordar para generar su respuesta. Puede provenir de una base de datos vectorial, del historial de un chat o de cualquier fuente relevante.
  • Entrada del usuario (query): la pregunta o solicitud concreta que se quiere resolver.
  • Indicador de salida: una señal para que el modelo comience a generar texto desde un punto específico, como escribir "Respuesta:" seguido de un estilo determinado.

En el ejemplo del "prompt argentino" [0:25], se le indica al modelo que responda basándose únicamente en el contexto dado. Si la pregunta coincide con la información del contexto, el modelo responde correctamente. Pero si la pregunta no tiene relación —como preguntar por librerías cercanas a Buenos Aires—, el modelo responde "Ni idea, che" [1:35], exactamente como se le instruyó. Esto es clave para evitar las alucinaciones, situaciones donde el modelo inventa información.

¿Cómo hacer un prompt dinámico con LangChain?

En un producto real, no se puede tener la pregunta del usuario escrita de antemano dentro del texto. Se necesita que ciertos campos sean variables. Aquí entra la clase PromptTemplate de LangChain [2:15].

El proceso es sencillo:

  1. Se escribe la plantilla con los campos fijos (instrucción, contexto, indicador de salida).
  2. Se coloca entre corchetes el nombre de la variable que cambiará, por ejemplo {query}.
  3. Se instancia PromptTemplate indicando en input_variables cuáles son los campos dinámicos y en template la plantilla creada.

python from langchain import PromptTemplate

plantilla_colombiana = """Instrucción: Responde la pregunta basándote en el contexto... Contexto: ... Pregunta: {query} Respuesta (escribe como un colombiano informal):"""

prompt_plantilla_colombiana = PromptTemplate( input_variables=["query"], template=plantilla_colombiana )

Si la variable se llamara "pregunta" en lugar de "query", simplemente se ajusta en ambos lugares. Y si hubiera múltiples variables —por ejemplo, que el contexto también fuera dinámico—, se agregan todas a la lista de input_variables [5:30].

¿Qué es una LLMChain y cómo conecta prompt con modelo?

El concepto de cadena (chain) es central en LangChain; de hecho, el nombre de la librería proviene de ahí [4:00]. Una LLMChain conecta un prompt template con un modelo de lenguaje en un solo flujo.

python from langchain import LLMChain

llm_gpt_3_5_chain = LLMChain( prompt=prompt_plantilla_colombiana, llm=llm_gpt_3_5 )

pregunta = "¿Qué son los LLM?" resultado = llm_gpt_3_5_chain.run(pregunta)

Al ejecutar el método run, la cadena toma la pregunta del usuario, la inserta en la plantilla y envía todo al modelo GPT-3.5 [4:20]. El resultado respeta tanto el contenido del contexto como el estilo definido en las instrucciones.

Cuando la respuesta no está en el contexto, el modelo lo reconoce. En el ejemplo colombiano, responde: "No tengo ni idea, parcero" [5:05]. Este comportamiento es preferible a que el modelo genere datos falsos, y se logra gracias a la instrucción explícita dentro del prompt template.

¿Por qué los prompt templates son tan valiosos en producción?

La verdadera potencia está en la flexibilidad: se puede hacer variable la pregunta, el contexto, e incluso la instrucción misma [5:30]. Tal vez en una ejecución se quiere un tono colombiano y en otra uno argentino. O quizás el contexto proviene de distintas bases de datos vectoriales según la consulta. Todo esto se resuelve añadiendo más variables a la plantilla.

Los prompt templates transforman un texto estático en una pieza modular que se adapta a cada interacción, lo cual resulta esencial para cualquier aplicación basada en modelos de lenguaje. Si ya estás experimentando con LangChain, prueba crear tus propias plantillas con múltiples variables y comparte qué combinaciones te funcionan mejor.