Ingeniería de prompts para aplicaciones LLM en producción
Diseño del system prompt, ejemplos few-shot, formato de salida, lógica de reintentos y optimización de costes.
Ingeniería de prompts para aplicaciones LLM en producción es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Diseñar prompts en producción
En las aplicaciones reales, los prompts son código: necesitan estructura, pruebas y fiabilidad. Una buena ingeniería de prompts reduce las alucinaciones, impone el formato de salida y controla los costes. En esta lección se abordan las técnicas importantes en producción.
Diseño del system prompt
El system prompt establece el rol, el tono, las restricciones y las reglas del modelo. Sea específico: indique qué es el asistente, qué debe y qué no debe hacer, y cuál debe ser el formato de sus respuestas. Un system prompt claro es su herramienta de orientación más potente.
system = (
"You are a support agent for an e-commerce store. "
"Answer only questions about orders and shipping. "
"If asked anything else, politely decline. "
"Keep replies under 3 sentences."
)Ejemplos few-shot
El prompting few-shot consiste en mostrar al modelo pares de entrada y salida de ejemplo para que aprenda el patrón. Debe colocarlos como mensajes alternos de usuario y asistente antes de la solicitud real.
messages = [
{"role": "system", "content": system},
{"role": "user", "content": "Classify: I love this!"},
{"role": "assistant", "content": "positive"},
{"role": "user", "content": "Classify: This broke instantly."},
{"role": "assistant", "content": "negative"},
{"role": "user", "content": "Classify: It is okay I guess."}
]Por qué funciona el few-shot
Los ejemplos aclaran su intención mejor que las instrucciones por sí solas. Fijan el estilo exacto de salida (una palabra, JSON o una etiqueta) y mejoran enormemente la coherencia en tareas de clasificación, extracción y formateo.
Forzar una salida JSON
Para obtener respuestas legibles por máquinas, solicite el modo JSON con response_format. Con {"type": "json_object"}, el modelo queda limitado a emitir JSON válido, que después puede analizar de forma segura.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)Contar tokens con tiktoken
Los límites de coste y de contexto se miden en tokens. La biblioteca tiktoken cuenta los tokens localmente para que pueda calcular el presupuesto antes de enviar la solicitud. Instálela con pip install tiktoken.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))Por qué es importante contar tokens
Cada modelo tiene una ventana de contexto (un número máximo de tokens) y usted paga por token. Contar de antemano le permite recortar el historial, rechazar entradas demasiado grandes y prever el coste antes de que la llamada salga de su servidor.
def cost_estimate(text, price_per_1k=0.005):
enc = tiktoken.encoding_for_model("gpt-4o")
n = len(enc.encode(text))
return n, n / 1000 * price_per_1kGestionar los límites de frecuencia
El tráfico de producción alcanza límites de frecuencia (HTTP 429) y errores transitorios. En lugar de que la aplicación se bloquee, vuelva a intentarlo con una espera exponencial. La biblioteca tenacity permite hacerlo con un decorador de una sola línea.
pip install tenacity
from tenacity import retry, wait_exponential, stop_after_attemptReintentar con tenacity
Aplique el decorador @retry a su llamada a la API. Utilice wait_exponential para aumentar el retraso entre intentos y stop_after_attempt para limitar el número total de intentos. Así podrá superar las interrupciones temporales con elegancia.
@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)Definir un JSON Schema para la salida
Cuando fuerce el modo JSON, describa siempre en el prompt la estructura exacta que desea para que las claves sean predecibles. Especificar el esquema en texto plano junto con el modo JSON le proporciona resultados analizables y válidos en cada ocasión.
system = (
"Return ONLY JSON with this shape: "
"{\"sentiment\": \"positive|negative|neutral\", "
"\"confidence\": number between 0 and 1}"
)Integrarlo todo
Una canalización de prompts para producción consiste en diseñar un system prompt estricto, añadir ejemplos few-shot, forzar la salida JSON cuando sea necesario, contar tokens para gestionar el coste y el contexto, y envolver las llamadas en una lógica de reintento. En conjunto, estas técnicas hacen fiables las funcionalidades basadas en LLM.
Comprobación rápida
Compruebe sus conocimientos sobre prompting en producción.
Repaso: diseño de prompts para producción
Aprendió a redactar prompts de sistema estrictos, a orientar el comportamiento mediante ejemplos few-shot y a garantizar respuestas estructuradas con el modo JSON de response_format. Contó tokens con tiktoken para gestionar el contexto y los costes, y añadió resiliencia mediante reintentos de tenacity para los límites de frecuencia.
Preguntas frecuentes
¿La lección «Ingeniería de prompts para aplicaciones LLM en producción» es gratis?
Sí — el texto completo de «Ingeniería de prompts para aplicaciones LLM en producción» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Ingeniería de prompts para aplicaciones LLM en producción»?
Diseño del system prompt, ejemplos few-shot, formato de salida, lógica de reintentos y optimización de costes. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Ingeniería de prompts para aplicaciones LLM en producción»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- API de OpenAI: chat.completions y streaming
- API de Anthropic Claude en Python
- Llamadas a funciones y uso de herramientas con LLM
- Ingeniería de prompts para aplicaciones LLM en producción