4D AIKit: Salidas estructuradas

Traducido automáticamente de Deepl

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.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.