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

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

  1. 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.
  2. 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.
  3. 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

Unexpected token '<' al llamar a una API compatible con OpenAI401 invalid API key: cuando la clave parece correcta pero sigue fallando

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.