Tema 4 · Salidas JSON

4. Salidas Estructuradas (Structured Outputs) y Modo JSON Estricto

Garantiza respuestas predecibles y 100% tipadas en tus APIs web mediante JSON Schema estricto (strict mode) sin parsing manual frágil.

El Fin del Parsing Frágil: ¿Por qué Fallaba el Prompting Tradicional?

Durante años, los desarrolladores intentaron obtener JSON de los LLMs agregando frases como: "Responde ÚNICAMENTE con un JSON válido sin markdown ni texto extra". Inevitablemente, en 1 de cada 20 peticiones, el modelo agregaba bloques ```json, comentarios explicativos o dejaba campos requeridos vacíos, provocando un error fatal SyntaxError: Unexpected token en el backend.

La solución definitiva de la industria son las Salidas Estructuradas (Structured Outputs). Los proveedores implementaron Constrained Decoding (decodificación con gramáticas formales): el motor de inferencia restringe matemáticamente las probabilidades de los tokens para que el modelo sea físicamente incapaz de emitir un carácter que viole el JSON Schema suministrado.

🎯 Fiabilidad del 100%: Con strict: true y json_schema, el objeto devuelto siempre contendrá las claves declaradas en required, los tipos exactos (string, number, boolean, array) y ningún campo imprevisto adicional.

Requisitos Obligatorios para Activar el Modo Estricto

Para que un JSON Schema sea aceptado por OpenAI, Anthropic o Gemini en modo estricto, debe cumplir tres reglas matemáticas:

  • additionalProperties: false: Debe declararse en todos los objetos del esquema para prohibir claves arbitrarias.
  • required: [...]: Todos los campos definidos en properties deben estar explícitamente listados en el arreglo required (si un campo es opcional, se modela con tipo nullable: ["string", "null"]).
  • type: "object": La raíz del esquema debe ser un objeto.

⚡ Especificación de JSON Schema Estricto para Extracción de Leads

Cuerpo de petición con response_format json_schema y strict: true para extraer datos de clientes sin fallos.

structured-output-schema.json
Solo lectura
{
  "model": "gpt-4o-mini",
  "temperature": 0.0,
  "messages": [
    {
      "role": "system",
      "content": "Eres un asistente de ventas. Extrae los datos de contacto y la intención de compra del texto del cliente."
    },
    {
      "role": "user",
      "content": "Hola, soy Carlos Mendoza de TechCorp ([email protected], tel +57 3001234567). Queremos cotizar 15 licencias del plan Empresa para el próximo mes con soporte 24/7."
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "extraccion_lead",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "nombre_completo": { "type": "string" },
          "empresa": { "type": "string" },
          "correo": { "type": "string" },
          "telefono": { "type": "string" },
          "cantidad_licencias": { "type": "integer" },
          "plan_interes": {
            "type": "string",
            "enum": ["Starter", "Profesional", "Empresa"]
          },
          "requiere_soporte_24_7": { "type": "boolean" },
          "comentarios_adicionales": { "type": ["string", "null"] }
        },
        "required": [
          "nombre_completo",
          "empresa",
          "correo",
          "telefono",
          "cantidad_licencias",
          "plan_interes",
          "requiere_soporte_24_7",
          "comentarios_adicionales"
        ],
        "additionalProperties": false
      }
    }
  }
}
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿Qué garantiza la característica "Structured Outputs" con strict: true al pedir una respuesta a un LLM?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar IA Aplicada a Desarrollo Web: APIs, RAG & Agentes y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.