Técnicas básicas de prompt engineering
El prompt engineering es el arte y la ciencia de diseñar instrucciones efectivas para modelos de lenguaje. A diferencia de simplemente hacer preguntas, esta disciplina se centra en estructurar las entradas de manera que maximicen la calidad, precisión y utilidad de las respuestas generadas.
En el contexto de la API Responses de OpenAI, el prompt engineering cobra especial relevancia porque determina directamente la calidad del output_text
que recibiremos. Un prompt bien diseñado puede ser la diferencia entre obtener una respuesta genérica y conseguir exactamente lo que necesitamos para nuestra aplicación.
El Prompt engineering es el punto de entraza a mejorar las respuestas de cualquier LLM.
Recuerda que primero es ideal configurar los parámetros del modelo para adaptarlos al tipo de tarea que quieras, después ya el siguiente paso es preparar un buen prompt con las siguientes técnicas.
Zero-shot prompting
La técnica zero-shot consiste en proporcionar una instrucción clara sin ejemplos previos, confiando en el conocimiento preentrenado del modelo. Esta aproximación es ideal cuando necesitamos respuestas directas y el contexto es suficientemente claro.
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
input="Clasifica el siguiente texto como positivo, negativo o neutral: 'El servicio fue aceptable pero la comida estaba fría'"
)
print(response.output_text)
La efectividad del zero-shot depende de la claridad de la instrucción. Observa cómo especificamos exactamente las categorías posibles y proporcionamos el texto a analizar de forma inequívoca.
Para mejorar los resultados zero-shot, es fundamental ser específico en las instrucciones:
response = client.responses.create(
model="gpt-4.1",
input="""Analiza el sentimiento del siguiente comentario y responde únicamente con una de estas opciones: POSITIVO, NEGATIVO, NEUTRAL.
Comentario: "La aplicación funciona bien pero le faltan algunas características que esperaba"
Respuesta:"""
)
Few-shot prompting
El few-shot prompting proporciona ejemplos específicos para guiar al modelo hacia el patrón de respuesta deseado. Esta técnica es especialmente útil cuando necesitamos un formato de salida específico o cuando la tarea requiere un estilo particular.
response = client.responses.create(
model="gpt-4.1",
input="""Convierte las siguientes descripciones en títulos de productos optimizados para e-commerce:
Ejemplo 1:
Descripción: Zapatos de cuero marrón para hombre, talla 42
Título: Zapatos Oxford Cuero Marrón Hombre Talla 42 - Elegantes y Cómodos
Ejemplo 2:
Descripción: Camiseta algodón azul manga corta mujer
Título: Camiseta Mujer Algodón 100% Azul Manga Corta - Suave y Transpirable
Ahora convierte:
Descripción: Mochila negra resistente al agua con compartimento para laptop
Título:"""
)
La clave del few-shot está en seleccionar ejemplos representativos que muestren claramente el patrón deseado. Los ejemplos deben cubrir variaciones importantes del problema sin ser excesivamente numerosos.
Chain of thought
La técnica chain of thought instruye al modelo para que muestre su razonamiento paso a paso antes de llegar a la conclusión final. Esto mejora significativamente la precisión en tareas que requieren lógica o cálculos.
response = client.responses.create(
model="gpt-4.1",
input="""Resuelve el siguiente problema paso a paso:
Una tienda online ofrece un descuento del 15% en compras superiores a 100€. Si además tienes un cupón de 10€ de descuento, ¿cuánto pagarías por una compra de 150€?
Piensa paso a paso:"""
)
Para problemas más complejos, podemos estructurar el chain of thought con indicadores específicos:
response = client.responses.create(
model="gpt-4.1",
input="""Analiza si esta estrategia de marketing es viable:
Situación: Lanzar una app de fitness con suscripción mensual de 9.99€, invirtiendo 50.000€ en marketing digital durante los primeros 6 meses.
Analiza siguiendo estos pasos:
1. Calcula el punto de equilibrio
2. Evalúa la competencia
3. Considera la retención de usuarios
4. Conclusión final
Análisis:"""
)
Estructuración de prompts efectivos
Algo que puede ayudarte es ver prompts ya diseñados por empresas destacadas en la industria.
Si bien no son públicos, existen repositorios en github como https://github.com/jujumilk3/leaked-system-prompts que han logrado extraer algunos prompts que pueden servir como referencia:
Un prompt bien estructurado sigue una anatomía clara que incluye contexto, instrucción específica, formato de salida y restricciones cuando sea necesario.
response = client.responses.create(
model="gpt-4.1",
input="""CONTEXTO: Eres un asistente especializado en análisis de código Python.
TAREA: Revisa el siguiente código y identifica problemas de rendimiento.
CÓDIGO:
def buscar_usuarios(lista_usuarios, criterio):
resultados = []
for usuario in lista_usuarios:
if criterio in usuario['nombre']:
resultados.append(usuario)
return resultados
FORMATO DE RESPUESTA:
* Problema identificado
* Explicación del impacto
* Solución propuesta
RESTRICCIONES: Mantén las explicaciones concisas y enfócate en aspectos prácticos."""
)
Técnicas de refinamiento
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
El refinamiento iterativo es fundamental para optimizar prompts. Comienza con una versión básica y ajusta según los resultados:
Versión inicial:
response = client.responses.create(
model="gpt-4.1",
input="Escribe una descripción de producto para unos auriculares inalámbricos"
)
Versión refinada:
response = client.responses.create(
model="gpt-4.1",
input="""Escribe una descripción comercial para auriculares inalámbricos dirigida a profesionales que trabajan desde casa.
Características del producto:
- Cancelación de ruido activa
- 30 horas de batería
- Micrófono integrado
- Conexión Bluetooth 5.0
Requisitos:
- Máximo 150 palabras
- Enfoque en beneficios profesionales
- Tono persuasivo pero informativo
- Incluir llamada a la acción"""
)
La especificidad en los prompts reduce la ambigüedad y mejora la consistencia de las respuestas. Cuando trabajamos con la API Responses, cada detalle en el input se traduce en mayor precisión en el output_text.
Manejo de variables en prompts
Para aplicaciones dinámicas, es esencial parametrizar los prompts manteniendo su efectividad:
def generar_resumen_producto(nombre_producto, caracteristicas, publico_objetivo):
prompt = f"""Crea un resumen comercial para {nombre_producto}.
Características principales:
{chr(10).join(f'- {caracteristica}' for caracteristica in caracteristicas)}
Público objetivo: {publico_objetivo}
Requisitos del resumen:
- Entre 80-120 palabras
- Destacar 3 beneficios clave
- Incluir propuesta de valor única
- Tono apropiado para el público objetivo
Resumen:"""
response = client.responses.create(
model="gpt-4.1",
input=prompt
)
return response.output_text
# Uso práctico
caracteristicas = [
"Resistente al agua IP68",
"Pantalla OLED de alta resolución",
"Batería de 7 días de duración"
]
resumen = generar_resumen_producto(
"SmartWatch Pro",
caracteristicas,
"deportistas y personas activas"
)
Esta aproximación modular permite reutilizar la estructura del prompt mientras adaptamos el contenido específico, manteniendo la calidad y consistencia en las respuestas generadas por la API Responses.
Aprendizajes de esta lección
- Comprender qué es el prompt engineering y su importancia en la calidad de las respuestas.
- Aprender las técnicas básicas: zero-shot, few-shot y chain of thought.
- Saber estructurar prompts claros y efectivos con contexto, instrucciones y formato de salida.
- Aplicar refinamiento iterativo para mejorar la precisión y utilidad de los prompts.
- Manejar variables y parametrización para crear prompts dinámicos y reutilizables.
Completa OpenAI y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs