Aspectos destacados
JSON es esencial para las aplicaciones LLM, ya que permite salidas estructuradas para consistencia, extracción de datos e integración sin problemas. Herramientas como Pydantic y las API mejoran la validación de esquemas y la mantenibilidad.
A pesar de sus beneficios, JSON tiene limitaciones como soporte parcial de esquemas, límites de tokens y posibles alucinaciones de contenido. Comprender sus fortalezas y limitaciones es crucial para construir sistemas eficientes e inteligentes.
Novita AI pronto lanzará descripciones de capacidades compatibles para cada LLM, que podrás ver directamente en la biblioteca de modelos.
En el desarrollo de aplicaciones modernas —particularmente con el auge de los modelos de lenguaje avanzados (LLM)— la importancia de un intercambio de datos predecible y estructurado se ha vuelto cada vez más evidente. Si bien los LLM destacan en la generación de lenguaje natural, muchos casos de uso exigen que su salida se ajuste a un formato específico. Esto garantiza una integración fluida con otros sistemas, bases de datos o procesos. Aquí entra el concepto de salidas estructuradas, donde JSON (JavaScript Object Notation) se ha convertido en el formato preferido para definir y aplicar estas estructuras. Este artículo explora la esencia de la salida JSON para datos estructurados, destacando sus beneficios, aplicaciones y limitaciones.
¿Qué es la salida JSON para salida estructurada?

de Langchain
Introducción a JSON
La salida JSON estructurada es una técnica utilizada con modelos de lenguaje grandes (LLM) para garantizar que sus respuestas se ajusten a un esquema predefinido, típicamente expresado en formato JSON.
- A los LLM se les proporciona una descripción detallada de la estructura de salida deseada, que incluye:
- Campos
- Tipos de datos
- Restricciones
Uso de herramientas para la implementación
Herramientas como Pydantic (una biblioteca de Python) se pueden utilizar para:
- Definir esquemas con sugerencias de tipo.
- Convertir estos esquemas en esquemas JSON.
Beneficios de usar herramientas como Pydantic:
- Garantiza salidas estructuradas.
- Mejora la legibilidad y mantenibilidad del código.
Uso de API para la implementación
- Algunas API, como la API de ChatCompletions de OpenAI, permiten a los desarrolladores aplicar salidas estructuradas mediante el soporte de características de esquema JSON.
- Estas API pueden ofrecer diferentes niveles de funcionalidad:
- Por ejemplo, la API de OpenAI admite un subconjunto limitado de características de esquema JSON.
- Otras API pueden ofrecer un soporte de esquemas más amplio.
Un ejemplo de OpenAI
entrada:
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI()
class Step(BaseModel):
explanation: str
output: str
class MathReasoning(BaseModel):
steps: list[Step]
final_answer: str
completion = client.beta.chat.completions.parse(
model="gpt-4o-2024-08-06",
messages=[
{"role": "system", "content": "You are a helpful math tutor. Guide the user through the solution step by step."},
{"role": "user", "content": "how can I solve 8x + 7 = -23"}
],
response_format=MathReasoning,
)
math_reasoning = completion.choices[0].message.parsed
salida:
{
"steps": [
{
"explanation": "Start with the equation 8x + 7 = -23.",
"output": "8x + 7 = -23"
},
{
"explanation": "Subtract 7 from both sides to isolate the term with the variable.",
"output": "8x = -23 - 7"
},
{
"explanation": "Simplify the right side of the equation.",
"output": "8x = -30"
},
{
"explanation": "Divide both sides by 8 to solve for x.",
"output": "x = -30 / 8"
},
{
"explanation": "Simplify the fraction.",
"output": "x = -15 / 4"
}
],
"final_answer": "x = -15 / 4"
}
¿Qué beneficios puede aportar el formato JSON?
JSON (JavaScript Object Notation) se utiliza ampliamente para salidas estructuradas e intercambio de datos, ofreciendo una serie de ventajas que lo hacen indispensable en el desarrollo de aplicaciones modernas. Aquí tienes una visión general simplificada de sus beneficios clave:
1. Salida predecible y consistente
- JSON garantiza que las salidas se adhieran estrictamente a un esquema predefinido, eliminando variaciones y facilitando que los sistemas posteriores procesen los datos de manera confiable.
- La estricta adherencia al esquema reduce la probabilidad de que los LLM generen campos inesperados o «alucinados», asegurando resultados consistentes y precisos.
2. Extracción fiable de datos y legibilidad por máquina
- La naturaleza estructurada y jerárquica de JSON lo hace ideal para extraer información específica de las salidas, ya sea para análisis de datos, informes o integración en aplicaciones.
- Es fácilmente analizable y procesable por máquinas, lo que permite la automatización y flujos de trabajo sin problemas.
3. Facilidad de análisis e integración
- El formato ligero y basado en texto de JSON es simple tanto para que los humanos lo lean como para que las máquinas lo analicen, mejorando su usabilidad.
- La mayoría de los lenguajes de programación modernos admiten JSON de forma nativa o mediante bibliotecas, simplificando la integración. Ejemplos incluyen:
- Python: módulo
json - Go: paquete
encoding/json - Node.js: objeto
JSONintegrado - Java: bibliotecas Jackson y Gson
- ASP.NET:
System.Text.JsonoNewtonsoft.Json - Ruby: biblioteca
json
- Python: módulo
4. Definición y validación de esquemas
- JSON Schema proporciona una forma estandarizada de definir la estructura esperada y los tipos de datos de la salida.
- La validación asegura que las salidas se ajusten a esquemas predefinidos, permitiendo la detección automática de errores y evitando datos malformados.
5. Flexibilidad con parámetros opcionales
- JSON admite campos opcionales, lo que permite flexibilidad en el diseño del esquema.
- Herramientas como Pydantic en Python permiten a los desarrolladores definir esquemas con anotaciones de tipo opcionales, manejando casos donde ciertos campos pueden no estar siempre presentes.
6. Eficiencia y rendimiento
- La sintaxis minimalista de JSON garantiza una representación de datos compacta y eficiente, lo que lo hace ideal para entornos donde el ancho de banda es limitado.
- En implementaciones como Baseten, las máscaras de tokens precalculadas para esquemas minimizan la latencia en llamadas posteriores, mejorando aún más el rendimiento.
7. Interoperabilidad y extensibilidad
- JSON es compatible con una amplia gama de lenguajes de programación, frameworks y herramientas, asegurando una integración fluida entre diferentes sistemas y plataformas.
- Su estructura flexible permite a los desarrolladores expandir o modificar formatos de datos sin romper flujos de trabajo existentes ni la compatibilidad.
8. Integración con API y bases de datos
- JSON es el formato de datos predeterminado para muchas API modernas, permitiendo una comunicación consistente y predecible entre clientes y servidores.
- También es compatible de forma nativa con numerosas bases de datos (ej. MongoDB, PostgreSQL), lo que lo hace eficiente para almacenar y recuperar datos estructurados.
9. Formato legible por humanos
La estructura simple e intuitiva de JSON facilita que desarrolladores y partes interesadas no técnicas lo lean y comprendan, simplificando la depuración y la colaboración.
Al combinar predecibilidad, eficiencia, usabilidad y flexibilidad, JSON se ha convertido en una piedra angular del desarrollo de aplicaciones modernas. Su capacidad para aplicar salidas estructuradas, garantizar un intercambio de datos fiable e integrarse sin problemas con herramientas, API y bases de datos lo convierte en un formato invaluable tanto para desarrolladores como para organizaciones.
Aplicaciones del formato JSON
El uso de JSON para salidas estructuradas es versátil y sigue creciendo en diversos ámbitos:
1. Web scraping
- Extraer elementos específicos como títulos, párrafos, enlaces e imágenes de páginas web y presentarlos en un formato JSON estructurado.
2. Extracción de datos a partir de texto
- Convertir texto no estructurado en objetos JSON estructurados para tareas como recuperación de información, análisis de datos u organización de contenido.
3. Creación de chatbots y agentes conversacionales
- Garantizar que las respuestas del chatbot se adhieran a una estructura JSON predefinida, especialmente al integrarse con sistemas backend o API.
Novita AI ha lanzado descripciones de capacidades compatibles para cada LLM, que puedes ver directamente en la consola y en los docs.
Limitaciones del formato JSON
A pesar de sus ventajas, el uso de JSON para salidas estructuradas tiene ciertas limitaciones:
1. Soporte parcial de esquema JSON
- Algunas API de LLM, como la API de ChatCompletions de OpenAI, solo admiten un subconjunto de la especificación completa de JSON Schema. Funciones como
minimumymaximumpara números ominItemsymaxItemspara arreglos pueden no ser compatibles, limitando las restricciones que puedes imponer.
2. Limitaciones de formato
- Ciertas especificaciones de formato, como los formatos de fecha y hora en esquemas de Pydantic, pueden no ser manejadas directamente por las API, requiriendo pasos adicionales de validación posterior.
3. Posibilidad de alucinaciones
- Si bien JSON garantiza la estructura de la salida, el contenido dentro de los campos estructurados aún puede ser alucinado. Por ejemplo, los ID de productos pueden tener el formato correcto como cadenas, pero los ID en sí mismos pueden ser inválidos o sin sentido.
4. Límites de tokens de salida
- Las salidas JSON están limitadas por los límites de tokens de los LLM (por ejemplo, modelos de OpenAI con un límite de 16,384 tokens). Si la salida estructurada excede el límite, puede truncarse, resultando en un JSON inválido.
5. Límites de complejidad del esquema
- Los esquemas profundamente anidados con numerosas propiedades de objeto pueden causar errores en la API. Se recomienda mantener los esquemas relativamente planos y simples para un mejor rendimiento y evitar errores.
6. Capacidades limitadas de esquemas dinámicos
- Los esquemas altamente dinámicos o arbitrarios, como listas de pares clave-valor donde las claves no están predefinidas, son difíciles de implementar con salidas estructuradas. En tales casos, el modo JSON estándar con instrucciones en el prompt del sistema puede ser más efectivo.
7. Sobrecarga de latencia
- Procesar esquemas estructurados puede introducir latencia en las solicitudes iniciales, ya que el esquema debe procesarse y posiblemente almacenarse en caché.
8. Falta de comentarios nativos
- JSON no admite comentarios dentro de los datos, lo que puede dificultar la comprensión de estructuras complejas sin documentación externa.
JSON es una piedra angular en el desarrollo de aplicaciones modernas con LLM, ofreciendo un formato robusto y ampliamente adoptado para salidas estructuradas. Al aplicar esquemas predefinidos, garantiza consistencia, facilita la extracción de datos y agiliza la integración entre sistemas. A pesar de limitaciones como el soporte parcial de JSON Schema y la posible alucinación de contenido, su predecibilidad, facilidad de uso y compatibilidad lo hacen indispensable para construir aplicaciones inteligentes e integradas. Una comprensión clara de sus fortalezas y limitaciones es esencial para optimizar soluciones basadas en LLM.
Preguntas frecuentes
¿La salida estructurada con JSON está garantizada libre de errores?
Si bien la salida estructurada garantiza que la respuesta será un objeto JSON válido que cumple con el esquema, no garantiza la precisión o validez del contenido dentro de esa estructura. Las alucinaciones aún pueden ocurrir.
¿Usar salida estructurada con JSON ralentiza la respuesta del LLM?
Podría haber una ligera sobrecarga de latencia inicialmente mientras se procesa el esquema. Sin embargo, en algunas implementaciones, esta sobrecarga se minimiza después de las primeras solicitudes debido al almacenamiento en caché y otras optimizaciones.
¿Cuál es la diferencia entre el modo JSON y el modo JSON Schema?
En el modo JSON, le indicas al LLM que devuelva un objeto JSON válido sin especificar un esquema detallado. En el modo JSON Schema, proporcionas un esquema JSON específico y el LLM se ve obligado a adherirse a esta estructura en su salida.
Novita AI es la plataforma integral en la nube que impulsa tus ambiciones de IA. API integradas, sin servidor, instancias de GPU — las herramientas rentables que necesitas. Elimina la infraestructura, comienza gratis y haz realidad tu visión de IA.


