Cómo usar respuestas estructuradas
Para usar correctamente “response_format” puedes definir tu schema con varias “properties”, que representan categorías de salidas, cada una con tipos de datos configurados individualmente. Estos objetos pueden anidarse para crear estructuras de salida más avanzadas. Aquí tienes un ejemplo de una llamada a la API usando response_format para explicar el proceso paso a paso de resolver una ecuación matemática. Puedes ver que las properties se configuraron para requerir tanto “steps” como “final_answer” en la respuesta. Dentro del anidamiento, la categoría steps consta tanto de “explanation” como de “output”, cada uno como cadenas.Gotchas
Aquí tienes algunos requisitos clave a tener en cuenta al usar salidas estructuradas mediante response_format:- Las solicitudes iniciales que usen response_format pueden tardar más en generar una respuesta. Las solicitudes posteriores no experimentarán la misma latencia que la inicial.
-
Para consultas más grandes, el modelo puede fallar al completar si se alcanzan
max_tokenso el timeout del modelo, o si se infringe algún límite de velocidad. - Un formato de schema incorrecto provocará errores al completar, normalmente por timeout.
- Aunque response_format garantiza que el modelo produzca una salida con un formato concreto, no garantiza que el modelo proporcione la información correcta en su interior. El contenido depende del prompt y del rendimiento del modelo.
- Las salidas estructuradas mediante response_format no son compatibles con llamadas a funciones en paralelo.
-
Importante: todos los campos o parámetros deben incluir una etiqueta
required. Para hacer un campo opcional, debes añadir una opciónnulldentro deltypedel campo, así:"type": ["string", "null"] -
Es posible hacer campos opcionales dando una opción
nulldentro del campo required para permitir una respuesta vacía. -
Importante:
additionalPropertiesdebe estar en false para que response_format funcione correctamente. -
Importante:
strictdebe estar en true para que response_format funcione correctamente.