Saltar al contenido
Aristo

Aprender

Contrato de salida6 minutos

Acuerda la forma de la respuesta

Especifica el formato, la estructura, la extensión, el idioma y el tono del resultado, y usa un esquema cuando lo vaya a leer un programa.

Por qué importa

El contrato de salida es la parte del prompt que decide si podrás usar la respuesta. Un análisis brillante con la forma equivocada hay que reescribirlo; una lista de campos en un formato ligeramente distinto rompe el programa que la lee. Si sabes adónde irá el resultado (un correo, una diapositiva, una hoja de cálculo, una base de datos), di lo que necesita ese destino.

Un contrato completo cubre el formato (tabla, lista, prosa, JSON), la estructura (secciones, columnas, orden), la extensión, el idioma y el tono. El detalle que más se olvida es el caso límite: ¿qué debe aparecer cuando falta un valor, cuando un criterio no se puede valorar o cuando una entrada está vacía? La guía de Google recomienda nombrar el formato de forma explícita, y la de Anthropic sugiere describir en positivo la forma que quieres en lugar de enumerar lo que hay que evitar.

Cuando un programa vaya a leer la salida, ve un paso más allá. Tanto Anthropic como OpenAI ofrecen salidas estructuradas: envías un esquema JSON con la petición y la respuesta queda obligada a seguirlo. La documentación de OpenAI señala que el modo JSON solo garantiza un JSON válido, mientras que las salidas estructuradas garantizan además que se respete el esquema. Describe igualmente el esquema en el prompt, para que el modelo entienda qué significa cada campo.

Cómo es un buen prompt

  • 0 — Nada sobre la forma. «Compara las dos propuestas».
  • 1 — Una sola pista vaga. «Compara las dos propuestas en una tabla».
  • 2 — Formato y extensión aproximada. «…una tabla de diez filas como máximo y luego un párrafo de recomendación». La estructura, el idioma y el tono siguen abiertos.
  • 3 — Formato, estructura, extensión, idioma y tono. «…columnas: criterio, propuesta A, propuesta B, ganadora. En portugués, tono neutro, sin preámbulo».
  • 4 — Un contrato completo, con los casos límite. Un esquema o una plantilla, más cómo aparecen los casos difíciles: «si un criterio no se puede valorar, pon “empate” como ganadora y explícalo en la recomendación».

En los prompts de imagen, el contrato cubre la composición, el estilo y la relación de aspecto.

Errores frecuentes

  • Pedir «una tabla» o «JSON» sin decir qué columnas o campos.
  • No indicar el idioma cuando la entrada y el lector usan idiomas distintos.
  • Señales de extensión contradictorias, como «breve» junto a una larga lista de secciones obligatorias.
  • Ninguna regla para los valores que faltan o son ambiguos, de modo que el modelo los inventa o se salta la fila.
  • Confiar solo en la redacción del prompt para un JSON que leerá una máquina cuando la API ofrece salidas estructuradas.

Pruébalo con tu propio prompt

Pega un prompt en el espacio de trabajo e imagina que llega la respuesta. ¿Dónde la vas a poner y qué tendrías que arreglar antes de usarla? Escribe esos arreglos en el prompt como contrato de salida, con una línea para el caso difícil. Después compara la puntuación de salida y usa la prueba en un modelo real si quieres ver las dos respuestas una al lado de la otra.

Ejemplos resueltos

Comparar dos ofertas de empleo

Débil
Compara estas dos ofertas de empleo.
Sólido
<oferta_a>
{{pega aquí la primera oferta}}
</oferta_a>

<oferta_b>
{{pega aquí la segunda oferta}}
</oferta_b>

Compara para mí las dos ofertas de arriba.

Formato de la respuesta:
- Una tabla con cuatro columnas: criterio, oferta A, oferta B, mejor para mí.
- Una fila para cada uno de estos criterios, en este orden: salario, pensión, desplazamiento, vacaciones, flexibilidad, desarrollo profesional.
- Debajo de la tabla, un párrafo de 80 palabras como máximo con tu recomendación.
- En español, sobrio y neutro; empieza directamente con la tabla.
- Si una oferta no menciona un criterio, escribe «no indicado» en esa celda y no lo cuentes a favor de ninguna oferta.

La versión fuerte fija la plantilla, el orden de las filas, la extensión, el idioma y el tono, y cómo aparece un valor que falta, para que la respuesta se lea de un vistazo.

Extraer solicitudes de reserva

Débil
Saca la información de estos correos.
Sólido
<emails>
{{pega aquí el lote de correos}}
</emails>

Para cada correo de arriba, extrae la solicitud de reserva de espacio que contiene. Un programa leerá tu respuesta, así que devuelve solo un array JSON, un objeto por correo, con estos campos:
- "email_id": el número que aparece en el asunto del correo
- "event_type": "wedding", "conference", "party" u "other"
- "date": la fecha solicitada en formato AAAA-MM-DD, o null si no se indica
- "guests": un número entero, o null si no se indica
- "needs_follow_up": true si falta la fecha o el número de invitados o es ambiguo; si no, false

Si un correo no contiene ninguna solicitud de reserva, inclúyelo igualmente, con "event_type": "other" y todos los demás campos en null salvo "email_id" y "needs_follow_up".

«La información» puede ser cualquier cosa. La versión fuerte da los nombres de los campos, los tipos, los valores permitidos y el caso vacío. A través de una API, pasa el mismo esquema a la función de salidas estructuradas para que el cumplimiento quede garantizado y no solo pedido.

Ejercicio

Reescribe este prompt para que el modelo conozca el formato, la extensión, la estructura y el tono del boletín.

Reescribe este prompt con un esquema de salida exacto, incluido qué hacer cuando falta un precio.

Reescribe este prompt para especificar la imagen: composición, estilo, relación de aspecto y qué debe quedar fuera del encuadre.

Pruébalo con tu propio prompt

Fuentes