AIKit 4D: Saídas estruturadas

Tradução automática de Deepl

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.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.