Ao utilizar a IA na sua aplicação, necessita frequentemente de resultados que o seu código possa analisar, e não apenas de texto de forma livre. Quer esteja a gerar dados para uma interface de utilizador, a automatizar lógica de negócio, ou a orquestrar raciocínios de vários passos, respostas previsíveis e legíveis por máquina são essenciais.
É por isso que o 4D AIKit de 4D 21 introduz o novo atributo response_format permitindo definir a estrutura exata da saída do modelo para assegurar consistência, validação, e integração suave na lógica de sua aplicação.
POR QUE SAÍDAS ESTRUTURADAS SÃO IMPORTANTES
Saídas estruturadas são úteis toda vez que precisa analisar ou interpretar o que um modelo AI produz.
Por exemplo:
- Geração de dados: Crie automaticamente conteúdo estruturado, como registos de produtos, entradas de CRM ou dados de configuração que a sua aplicação pode utilizar imediatamente.
- Raciocínio e planeamento: Pode pedir ao modelo para propor os passos seguintes ou opções de fluxo de trabalho que a sua aplicação pode apresentar ou executar automaticamente.
- Agentes de várias etapas (padrão ReAct): Combinam raciocínio e ação, em que a IA segue formatos específicos para orientar a sua próxima ação.
- Controlo da cadeia de raciocínio (apenas parte visível): Capture os passos de raciocínio que decide expor aos utilizadores para transparência ou depuração.
- Depuração / Monitorização do raciocínio da IA: Impor uma estrutura para que a lógica interna da IA possa ser registada e analisada.
Aqui está um exemplo simples de como um modelo de IA pode retornar dados de raciocínio estruturados que podem ser analisados instantaneamente em 4D:
{
"thought": "The customer seems satisfied overall but mentioned slow delivery.",
"next_step": "offer_discount"
}
Caso de uso: A IA resume o raciocínio e sugere uma próxima ação que seu código pode aplicar automaticamente.
Saídas estruturadas com response_format
Ao interagir com um modelo AI, os desenvolvedores frequentemente precisam de resultados em um formato específico, seja texto simples, objetos JSON, ou dados validados contra um esquema. Com o novo atributo response_format agora é possível instruir o modelo a retornar sua resposta na estrutura exata que você precisa.
Aqui está outro caso em que a saída estruturada garante dados consistentes e validados, um resumo financeiro retornado como JSON estrito:
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"]
// ]
//}"
A IA responde com um objeto JSON validado, pronto a utilizar na sua base de dados ou IU, sem necessidade de pós-processamento.
CENÁRIO DE SUPORTE DO MODELO
O suporte para resultados estruturados varia consoante o modelo que está a utilizar:
-
OpenAI GPT-4o e GPT-4-Turbo suportam nativamente response_format.
-
Osmodelos locais ou outros modelos de nuvem (por exemplo, modelos Claude, Gemini ou Ollama) podem oferecer suporte a saídas estruturadas de forma diferente, às vezes por meio de chamadas de função estritas, às vezes por meio de imposição de esquema baseado em texto.
E lembre-se: response_format não se limita ao JSON. Dependendo do modelo, também podem ser suportados outros formatos, como texto simples, XML ou sintaxes específicas do domínio.
Conclusão
Com o response_format no 4D AIKit, pode garantir que suas saídas de IA são exatamente como precisa, consistentes, confiáveis, e prontas para conectar diretamente em sua UI, banco de dados, ou qualquer outro sistema. Essa funcionalidade ajuda os desenvolvedores a analisar as conclusões de IA sem esforço e integrar inteligência profundamente em suas aplicações 4D. Transforma IA de um simples parceiro de chat num motor de raciocínio poderoso e estruturado, permitindo funcionalidades mais inteligentes e dinâmicas do que os utilizadores alguma vez imaginaram.
