Inicio → Ayuda
El modo JSON sigue devolviendo texto que no se puede analizar
El modo JSON básico solo promete JSON sintácticamente válido cuando el modelo llega hasta el final. No promete tu esquema, y no puede prometer nada si la generación se detiene antes por max_tokens.
Lo que ves
JSONDecodeError on output that looks almost rightThe object is cut off mid-stringMarkdown fences around the JSONValid JSON that is missing fields your code requires
Por qué ocurre
Alcanzar el límite de salida trunca el objeto a mitad de token. El resultado no se puede analizar sin que el prompt tenga culpa alguna: revisa finish_reason antes de revisar el parser.
El modo JSON básico no tiene esquema. El modelo puede devolver JSON válido con otras claves o con una forma anidada que no esperabas, y se analizará sin problemas mientras rompe tu código.
Algunos modelos envuelven la salida en bloques de código markdown cuando el prompt contiene ejemplos con ese formato. El contenido está bien; lo que falla es el envoltorio.
Cómo solucionarlo
- Revisa finish_reason antes de analizarUn finish_reason igual a length significa truncamiento. Sube max_tokens o pide un objeto más pequeño en lugar de depurar el parser.
- Usa salida validada por esquema donde el modelo lo admitaPasar un JSON schema, en lugar de pedir JSON en el texto, es lo que realmente restringe las claves. Valida el resultado de todos modos.
- Quita los delimitadores por precauciónUn preprocesado de tres líneas que elimina los delimitadores de bloque de código al principio y al final no cuesta nada y elimina toda una clase de fallos.
La salida truncada sigue siendo salida generada, así que en APICLAN se sigue cobrando. Leer finish_reason y dimensionar bien max_tokens te ahorra el reintento, que es el coste real.
Relacionado
Revisado por última vez el 2026-10-01. Escrito a partir de problemas diagnosticados en una pasarela
compatible con OpenAI en producción, no recopilado de otras webs.