Iteración y depuración de prompts
Creará un flujo de trabajo sistemático para probar y perfeccionar prompts, identificará modos de fallo y utilizará OpenAI Playground para iterar rápidamente antes de escribir código para producción.
Iteración y depuración de prompts es una lección gratuita de AI Engineering Academy 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 AI Engineering Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Engineering Academy incluye 4 lecciones en total.
La creación de prompts es una disciplina empírica
La ingeniería eficaz de prompts no consiste en encontrar una fórmula mágica: es un proceso empírico e iterativo, más parecido a la depuración que a la redacción. Escriba un prompt, ejecútelo con entradas de prueba, observe dónde falla, formule una hipótesis sobre la causa del fallo y modifique el prompt para corregirlo. La intuición por sí sola no es fiable: necesita datos.
Muchos desarrolladores cometen el error de probar su prompt con uno o dos ejemplos creados manualmente, observar buenos resultados y ponerlo en producción, solo para descubrir que el prompt falla en el 30 % de las entradas reales. Un flujo de evaluación sistemático evita esto al exponer el prompt a ejemplos diversos y representativos antes de ponerlo en marcha.
Crear primero un conjunto de pruebas
Antes de escribir el prompt, cree un conjunto de pruebas de referencia: una colección de entre 20 y 100 ejemplos de entrada representativos, emparejados con la salida esperada o con los criterios de aprobación. Este conjunto se convierte en la referencia objetiva para evaluar cualquier cambio en el prompt.
Los buenos conjuntos de pruebas incluyen: entradas típicas, casos límite (cadenas vacías, entradas muy largas y casos ambiguos), entradas adversarias diseñadas para romper el prompt y entradas de diferentes segmentos de su población de usuarios. Cuanto más diverso sea el conjunto de pruebas, más confianza podrá tener en que un cambio en el prompt supone una mejora real, en lugar de un sobreajuste a los pocos ejemplos que tenía en mente.
Un sistema sencillo de evaluación
Escribir un script sencillo de evaluación lleva una hora y ahorra días de depuración de problemas en producción. El script ejecuta el prompt con cada caso de prueba, compara la salida con el resultado esperado e informa de la tasa de aprobación. Después puede iterar sobre el prompt y comprobar inmediatamente si los cambios han mejorado la puntuación general.
import openai
client = openai.OpenAI()
# Golden test set: (input, expected_output)
test_cases = [
('The product is excellent and very fast.', 'Positive'),
('Arrived damaged and customer service ignored me.', 'Negative'),
('Delivery was on time.', 'Neutral'),
('Worst purchase of my life. Never again!', 'Negative'),
('Good value for the price.', 'Positive'),
]
def evaluate_prompt(system_prompt):
correct = 0
for text, expected in test_cases:
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': text}
],
max_tokens=10
)
prediction = resp.choices[0].message.content.strip()
if expected.lower() in prediction.lower():
correct += 1
else:
print(f'FAIL: "{text}" -> got "{prediction}", expected "{expected}"')
return correct / len(test_cases)
score = evaluate_prompt('Classify sentiment as Positive, Negative, or Neutral. Reply with one word only.')
print(f'Score: {score:.0%}')Categorizar los tipos de fallo
Cuando el prompt falla en los casos de prueba, agrupe los fallos por tipo para identificar patrones. Algunos tipos de fallo habituales son:
- Fallos de formato: el modelo produce la respuesta correcta, pero con el formato equivocado
- Fallos por ambigüedad: el modelo interpreta la tarea de forma distinta a la prevista
- Fallos en casos límite: el modelo funciona con entradas típicas, pero falla con entradas inusuales
- Fallos por alucinación: el modelo produce contenido factual incorrecto con seguridad
- Ignorar instrucciones: el modelo sigue parcialmente las instrucciones, pero omite restricciones específicas
Cada tipo de fallo requiere una solución diferente. Los fallos de formato requieren instrucciones de salida más explícitas; los fallos por ambigüedad requieren una definición más clara de la tarea o ejemplos.
OpenAI Playground para iterar rápidamente
El OpenAI Playground (platform.openai.com/playground) es la herramienta más rápida para iterar sobre prompts sin escribir código. Permite cambiar de modelo, ajustar parámetros con controles deslizantes, guardar versiones de prompts y comparar resultados uno al lado del otro.
Utilice Playground durante la fase de exploración del desarrollo de prompts: pruebe diferentes formulaciones, analice casos límite de forma interactiva y desarrolle su intuición sobre lo que funciona. Cuando haya convergido en un prompt prometedor, páselo al código con un sistema de evaluación para validarlo sistemáticamente con todo el conjunto de pruebas antes de ponerlo en producción.
Control de versiones de prompts
Los prompts son código. Deben someterse a control de versiones, revisarse e implementarse con el mismo rigor que el código de la aplicación. El enfoque más básico consiste en almacenar las plantillas de prompts como cadenas en un archivo de constantes del repositorio, de modo que los cambios se registren en git y requieran una revisión de código.
Entre los enfoques más sofisticados se incluyen almacenar los prompts en una base de datos específica de gestión de prompts (LangSmith, PromptLayer o una tabla sencilla de Supabase), etiquetar las versiones y realizar pruebas A/B entre versiones de prompts en producción. Esto es especialmente importante cuando varios miembros del equipo trabajan en los mismos prompts o cuando necesita revertir un cambio que haya reducido la calidad en producción.
# prompts/sentiment.py
# Version 2.1 - Added explicit tie-breaking rule for mixed reviews
SENTIMENT_V2_1 = '''You are a sentiment classification assistant.
Classify the customer review sentiment as exactly one of: Positive, Negative, or Neutral.
Rules:
- Positive: overall satisfaction, praise, or recommendation
- Negative: disappointment, complaint, or warning to others
- Neutral: factual statements without strong sentiment, or equal positive and negative content
- If the review contains both positive and negative elements, choose based on the DOMINANT tone
Respond with ONLY the single word classification. No explanation.'''
# Usage:
# from prompts.sentiment import SENTIMENT_V2_1Comparar variantes de prompts de forma sistemática
Cuando tenga dos versiones de prompt en competencia, ejecute ambas con todo su conjunto de pruebas y compare las puntuaciones. Incluso una mejora del 5 % en la precisión de un sistema en producción que procesa miles de solicitudes al día justifica el esfuerzo de la evaluación. Nunca elija un prompt basándose en uno o dos ejemplos probados manualmente: compárelos siempre con todo el conjunto de pruebas.
Para las medidas de calidad subjetivas en las que no existe una única respuesta correcta, como el tono, la utilidad o la creatividad, puede utilizar LLM-as-judge: solicite a un modelo potente, como GPT-4o, que evalúe cuál de dos respuestas cumple mejor sus criterios de calidad. Esto permite ampliar la evaluación más allá de lo que puede abarcar la revisión humana.
Depuración de resultados inconsistentes
De forma predeterminada, los resultados de los LLM no son deterministas. Establecer temperature=0 hace que los resultados sean casi deterministas (se selecciona el token más probable en cada paso), algo esencial para la depuración, ya que permite ejecutar el mismo prompt dos veces y obtener el mismo resultado. Durante la depuración, establezca siempre la temperatura en 0 para poder aislar si un cambio en el prompt provocó el cambio en el resultado o si este se debió simplemente a una variación aleatoria.
Una vez corregido el prompt, vuelva a habilitar cierto nivel de temperatura en producción si su caso de uso se beneficia de la variedad, como la escritura creativa o la lluvia de ideas. Sin embargo, mantenga la temperatura en 0 para las tareas de extracción estructurada y clasificación en las que necesite resultados coherentes y reproducibles.
import openai
client = openai.OpenAI()
# Deterministic mode for debugging
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Classify sentiment: Positive, Negative, or Neutral.'},
{'role': 'user', 'content': 'The product looks nice but broke after two days.'}
],
temperature=0, # deterministic
seed=42 # optional reproducibility seed
)
print(response.choices[0].message.content)Depuración de alucinaciones
Si su prompt está generando datos ficticios, añada restricciones que dificulten las alucinaciones. Entre las técnicas eficaces para combatirlas se incluyen:
- Citar las fuentes: «Responda únicamente basándose en el contexto proporcionado. Si la respuesta no se encuentra en el contexto, diga “No lo sé”».
- Cuantificar la confianza: «Indique su nivel de confianza del 1 al 5. Si es inferior a 3, no responda».
- Incluir un paso de verificación: «Antes de responder, verifique que cada dato que planea utilizar está presente en el documento proporcionado».
Ninguna técnica elimina por completo las alucinaciones, pero combinar la recuperación (RAG) con restricciones sólidas en el prompt las reduce drásticamente en aplicaciones que requieren mucho conocimiento.
Longitud del prompt y ubicación de las instrucciones
Las investigaciones han demostrado que los LLM prestan más atención a las instrucciones situadas al principio y al final de un prompt que a las del centro. Este fenómeno se denomina problema de pérdida en el centro. Si tiene un prompt largo con instrucciones importantes enterradas en el centro y rodeadas de contexto, es posible que el modelo no las siga de forma fiable.
Práctica recomendada: coloque las instrucciones más importantes, como la definición de la tarea y las restricciones críticas, al principio del prompt del sistema y repita las restricciones clave al final. En el caso de documentos largos insertados como contexto, coloque la pregunta del usuario después del documento y no antes, ya que el modelo dará más peso al contenido más reciente.
De la exploración a producción
El ciclo de desarrollo de prompts consta de tres fases:
- Exploración: utilice el Playground para experimentar libremente. Céntrese en comprender qué funciona a nivel conceptual, no en obtener un resultado perfecto.
- Evaluación: cree un conjunto de pruebas y un sistema de evaluación. Ejecute los prompts candidatos con todo el conjunto de pruebas y mida las tasas de aprobación. Repita el proceso hasta alcanzar su umbral de calidad.
- Producción: controle las versiones del prompt final, añada supervisión para realizar un seguimiento de las métricas de calidad en producción y configure alertas para detectar su deterioro. Planifique futuras iteraciones cuando cambien las versiones del modelo.
Omitir la fase de evaluación es la causa más común de las regresiones en la calidad de los prompts en producción. El tiempo invertido en crear un conjunto de pruebas adecuado se amortiza muchas veces.
Comprobación rápida
Compruebe cuánto ha entendido de los conceptos de ingeniería de IA de esta lección.
Resumen de la lección
En esta lección ha aprendido que la ingeniería de prompts requiere un conjunto de pruebas de referencia y un sistema de evaluación para medir las mejoras de forma fiable, que los modos de fallo deben categorizarse para identificar la solución adecuada para cada tipo y que la temperatura 0 es esencial para la depuración, mientras que el control de versiones de los prompts y la supervisión en producción completan el ciclo de calidad. A continuación, exploraremos cómo procesan el texto los LLM mediante tokens y por qué el número de tokens es importante para el coste y el contexto.
Preguntas frecuentes
¿La lección «Iteración y depuración de prompts» es gratis?
Sí — el texto completo de «Iteración y depuración de prompts» 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 AI Engineering Academy, actualiza a CoddyKit PRO. El curso de AI Engineering Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Iteración y depuración de prompts»?
Creará un flujo de trabajo sistemático para probar y perfeccionar prompts, identificará modos de fallo y utilizará OpenAI Playground para iterar rápidamente antes de escribir código para producción. Practicas AI Engineering Academy 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 AI Engineering Academy?
No se requiere experiencia previa. AI Engineering Academy 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 «Iteración y depuración de prompts»?
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 AI Engineering Academy?
Sí. Cada lección de AI Engineering Academy 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
- Prompting zero-shot y few-shot
- Chain-of-thought y razonamiento paso a paso
- Prompts de sistema y definición de la persona
- Iteración y depuración de prompts