La Notación de Objetos de JavaScript (JSON) es un formato de archivo estándar en la industria, legible por humanos y procesable por máquinas, lo que lo convierte en una opción popular para el intercambio de datos. A pesar de sus ventajas, los modelos de lenguaje grandes (LLMs) a menudo enfrentan desafíos con JSON. Pueden generar contenido erróneo, producir respuestas que solo coinciden parcialmente con las instrucciones o no parsear JSON correctamente. Esta situación obliga a los desarrolladores a utilizar soluciones alternativas, como herramientas de código abierto, múltiples indicaciones o solicitudes repetidas, para lograr la interoperabilidad deseada.
Salidas Estructuradas: Una Solución para Desarrolladores
Hoy, OpenAI ha abordado estas frustraciones con la introducción de su función de Salidas Estructuradas en la API. Esta nueva funcionalidad garantiza que las salidas generadas por el modelo se alineen con Esquemas JSON, que definen el contenido, estructura, tipos de datos y restricciones de un documento JSON. OpenAI identificó esta característica como la más solicitada por los desarrolladores, destacando su papel en mejorar la consistencia entre aplicaciones. El CEO Sam Altman incluso mencionó el lanzamiento como “por demanda popular”.
En las evaluaciones, el nuevo modelo GPT-4o de OpenAI logró una puntuación perfecta de 100% con Salidas Estructuradas. Este anuncio sigue a una semana notable en OpenAI, marcada por las inesperadas renuncias de ejecutivos clave como John Schulman, Greg Brockman y Peter Deng, junto con los desafíos legales en curso de Elon Musk contra la empresa, descritos como una traición “shakespeariana” a su misión de IA.
Mejorando la Adherencia a Esquemas con Facilidad
JSON se utiliza como un formato flexible y ampliamente adoptado para el almacenamiento y el intercambio de datos, compatible con varios lenguajes de programación. OpenAI presentó previamente un modo JSON para sus modelos durante el DevDay del año pasado, en respuesta a la demanda de los desarrolladores.
Las Salidas Estructuradas permiten a los desarrolladores restringir los modelos de OpenAI para que se adhieran estrictamente a esquemas definidos. OpenAI ha afirmado que esta característica mejora la comprensión del modelo sobre esquemas complejos. “Las Salidas Estructuradas representan una evolución del modo JSON”, explica la empresa en su blog. “Mientras que ambos aseguran la producción de JSON válido, solo las Salidas Estructuradas garantizan la adherencia al esquema.” Este avance alivia las preocupaciones sobre claves requeridas omitidas o valores de enumeración inválidos, constantes en programación que simplifican el mantenimiento del código.
Los desarrolladores pueden usar Salidas Estructuradas para guiar las salidas paso a paso, eliminando la necesidad de validar o reenviar respuestas con formato incorrecto. La función permite indicaciones más simples e incluye rechazos claros para solicitudes no seguras, manteniendo el compromiso de OpenAI con la seguridad.
Disponibilidad y Compatibilidad
Las Salidas Estructuradas están disponibles en GPT-4o-mini, GPT-4o y versiones ajustadas de estos modelos. Se pueden utilizar con la API de Completions de Chat, la API de Asistentes y la API Batch, y soportan entradas visuales. OpenAI reconoce que esta nueva funcionalidad se inspira en el excelente trabajo de la comunidad de código abierto, especialmente de bibliotecas como outlines, jsonformer, instructor, guidance y lark.