Cuando se utiliza IA en una aplicación, a menudo se necesitan resultados que el código pueda analizar, no sólo texto sin formato. Tanto si está generando datos para una interfaz de usuario, automatizando la lógica de negocio u orquestando un razonamiento de varios pasos, las respuestas predecibles y legibles por la máquina son esenciales.
Por eso 4D 21 AIKit introduce el nuevo atributo response_format que le permite definir la estructura exacta de la salida del modelo para garantizar la coherencia, la validación y la integración sin problemas en la lógica de su aplicación.
POR QUÉ SON IMPORTANTES LAS SALIDAS ESTRUCTURADAS
Las salidas estructuradas son útiles cada vez que se necesita analizar o interpretar lo que produce un modelo de IA.
Por ejemplo
- Generación de datos: Cree automáticamente contenido estructurado como registros de productos, entradas de CRM o datos de configuración que su aplicación pueda utilizar inmediatamente.
- Razonamiento y planificación: Puede pedir al modelo que proponga los siguientes pasos u opciones de flujo de trabajo que su app puede mostrar o ejecutar automáticamente.
- Agentes multipaso (patrón ReAct): Combinan razonamiento y actuación, donde la IA sigue formatos específicos para guiar su siguiente acción.
- Control de la cadena de pensamiento (sólo parte visible): Capture los pasos de razonamiento que decida exponer a los usuarios para transparencia o depuración.
- Depuración / Control del razonamiento de la IA: Imponga una estructura para que la lógica interna de la IA pueda registrarse y analizarse.
He aquí un ejemplo simple de cómo un modelo de IA podría devolver datos de razonamiento estructurados que usted puede analizar instantáneamente en 4D:
{
"thought": "The customer seems satisfied overall but mentioned slow delivery.",
"next_step": "offer_discount"
}
Caso de uso: La IA resume el razonamiento y sugiere una próxima acción que su código puede aplicar automáticamente.
Salidas estructuradas con response_format
Al interactuar con un modelo de IA, los desarrolladores a menudo necesitan resultados en un formato específico, ya sea texto plano, objetos JSON o datos validados según un esquema. Con el nuevo atributo response_format ahora puede ordenar al modelo que devuelva su respuesta en la estructura exacta que necesite.
He aquí otro caso en el que la salida estructurada garantiza datos coherentes y validados: un resumen financiero devuelto como JSON estricto:
var $client:=cs.AIKit.OpenAI.new($openAIKey)
var $chatHelper:=$ai.chat.create("You are a financial data analyst.")
// Define the expected response format for the AI
var $response_format:={type: "json_schema"; json_schema: {}}
$response_format.json_schema.name:="sales_summary"
$response_format.json_schema.schema:={type: "object"; properties: {}}
$response_format.json_schema.schema.properties.total_revenue:={type: "number"}
$response_format.json_schema.schema.properties.gross_margin:={type: "number"}
$response_format.json_schema.schema.properties.top_products:={Type: "array"; items: {Type: "String"}}
$response_format.json_schema.schema.required:=["total_revenue"; "gross_margin"; "top_products"]
$response_format.json_schema.schema.additionalProperties:=False
// Attach the JSON Schema format to the chat helper
$chatHelper.parameters.response_format:=$jsonFormat
// Compose the message to send to the AI:
var $message:="Here are the sales figures for Q3:\n"
$message+="- Product A: $120,000 in sales, 40% margin\n"
$message+="- Product B: $85,000 in sales, 35% margin\n"
$message+="- Product C: $60,000 in sales, 50% margin\n"
$message+="Please calculate the total revenue, the overall gross margin, "
$message+="and list the top 2 products by revenue."
var $result:=$chatHelper.prompt($message)
//$result.choice.message.text:="{
// "total_revenue": 265000,
// "gross_margin": 0,406603773,
// "top_products": ["Product A","Product B"]
// ]
//}"
La IA responde con un objeto JSON validado, listo para ser utilizado en su base de datos o interfaz de usuario, sin necesidad de post-procesamiento.
SOPORTE DE MODELOS
La compatibilidad con los resultados estructurados varía en función del modelo que se utilice:
-
OpenAI GPT-4o y GPT-4-Turbo admiten de forma nativa response_format.
-
Losmodelos locales u otros modelos en la nube (por ejemplo, los modelos Claude, Gemini u Ollama) pueden admitir salidas estructuradas de forma diferente, a veces mediante llamadas a funciones estrictas, a veces mediante la aplicación de esquemas basados en texto.
Y recuerde que response_format no se limita a JSON. Dependiendo del modelo, otros formatos como texto plano, XML, o sintaxis específicas del dominio también pueden ser soportados.
Conclusión
Con response_format de 4D AIKit, puedes asegurarte de que tus resultados de IA son exactamente como los necesitas, consistentes, fiables y listos para conectar directamente a tu interfaz de usuario, base de datos o cualquier otro sistema. Esta función ayuda a los desarrolladores a analizar las conclusiones de la IA sin esfuerzo y a integrar la inteligencia profundamente en sus aplicaciones 4D. Transforma la IA de un simple compañero de chat a un potente motor de razonamiento estructurado, permitiendo funciones más inteligentes y dinámicas de lo que los usuarios jamás imaginaron.
