Un patrón de prompt con json_schema baja los errores de parseo del 15% al 1%
Un desarrollador cuenta cómo pasó a response_format con json_schema, marcó todos los campos como obligatorios y nullable, y añadió un ejemplo con un caso límite.
Un desarrollador que pedía a GPT-4o datos estructurados para alimentar un script ha publicado el patrón que, según su experiencia, le bajó los errores de parseo del 15% a menos del 1%. La receta tiene tres piezas: usar el modo de salidas estructuradas de la API con response_format y json_schema en lugar de pedir JSON en el prompt, declarar obligatorios todos los campos del esquema y meter un ejemplo trabajado con un caso límite.
El autor partía de una situación habitual: el modelo devolvía JSON mal formado y el script de después se rompía. Él lo medía en reintentos. Antes de tocar el prompt, alrededor del 15% de las respuestas necesitaban un segundo intento. Después, por debajo del 1% en unos cientos de llamadas. Es su cifra, tomada de su propio tráfico, no un benchmark reproducible ni un dato que haya verificado alguien más.
Los dos ajustes que suelen faltar
El segundo cambio es el que menos gente aplica: en el esquema, todos los campos van como requeridos, incluidos los que en la práctica serían opcionales. En vez de omitirlos, se declaran nullable. El modelo, dice, rellena nulls explícitos mucho mejor que huecos ausentes, y ahí es donde se caen la mayoría de las validaciones de después.
El tercero es el ejemplo. Uno solo, en el system prompt, y eligiendo un caso incómodo: una lista vacía, cadenas con caracteres especiales, esos bordes que el modelo suele resolver mal. Un ejemplo de camino feliz no enseña nada que el esquema no diga ya.
Lo que no hay
La publicación tiene un único mensaje y ninguna respuesta, así que nadie ha contrastado el patrón. El autor no incluye el fragmento de esquema, aunque se ofrece a compartirlo, y no da más detalle del modelo empleado que GPT-4o ni del volumen exacto de llamadas. Tampoco compara con otras alternativas de restricción de formato, como el modo JSON simple o validar la salida en el propio parseador.
Para quien construye pipelines que consumen salidas de un LLM, el coste real está en los reintentos y en la validación, no en la llamada. Marcar campos como nullable y enseñar un caso límite son cambios de diez minutos que se prueban en una tarde. Queda por ver si el efecto se sostiene con otros modelos y si el autor acaba publicando el esquema.

