Quando si utilizza l’intelligenza artificiale nelle applicazioni, spesso si ha bisogno di output che il codice possa analizzare, non solo di testo in forma libera. Che si tratti di generare dati per un’interfaccia utente, automatizzare la logica aziendale o orchestrare un ragionamento in più fasi, le risposte prevedibili e leggibili dalla macchina sono essenziali.
Ecco perché 4D 21 AIKit introduce il nuovo attributo response_format che consente di definire l’esatta struttura dell’output del modello per garantire coerenza, convalida e integrazione nella logica dell’applicazione.
PERCHÉ GLI OUTPUT STRUTTURATI SONO IMPORTANTI
Gli output strutturati sono utili ogni volta che è necessario analizzare o interpretare ciò che un modello AI produce.
Ad esempio:
- Generazione di dati: Creazione automatica di contenuti strutturati come record di prodotto, voci del CRM o dati di configurazione che l’app può utilizzare immediatamente.
- Ragionamento e pianificazione: È possibile chiedere al modello di proporre le fasi successive o le opzioni del flusso di lavoro che l’applicazione può visualizzare o eseguire automaticamente.
- Agenti multi-fase (modello ReAct): Combinano ragionamento e azione, dove l’IA segue formati specifici per guidare la sua azione successiva.
- Controllo della catena di pensiero (solo parte visibile): Cattura le fasi del ragionamento che si decide di esporre agli utenti per trasparenza o debug.
- Debug / Monitoraggio del ragionamento dell’IA: Imporre una struttura che consenta di registrare e analizzare la logica interna dell’IA.
Ecco un semplice esempio di come un modello di IA potrebbe restituire dati strutturati di ragionamento che possono essere analizzati istantaneamente in 4D:
{
"thought": "The customer seems satisfied overall but mentioned slow delivery.",
"next_step": "offer_discount"
}
Caso d’uso: L’intelligenza artificiale riassume il ragionamento e suggerisce un’azione successiva che il codice può applicare automaticamente.
Output strutturati con response_format
Quando interagiscono con un modello di intelligenza artificiale, gli sviluppatori hanno spesso bisogno di risultati in un formato specifico, che si tratti di testo semplice, oggetti JSON o dati convalidati rispetto a uno schema. Con il nuovo attributo response_format è possibile indicare al modello di restituire la risposta nell’esatta struttura richiesta.
Ecco un altro caso in cui l’output strutturato garantisce dati coerenti e convalidati: un riepilogo finanziario restituito come JSON rigoroso:
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"]
// ]
//}"
L’IA risponde con un oggetto JSON convalidato, pronto per essere utilizzato nel database o nell’interfaccia utente, senza necessità di post-elaborazione.
PANORAMA DEI MODELLI SUPPORTATI
Il supporto per gli output strutturati varia a seconda del modello utilizzato:
-
OpenAI GPT-4o e GPT-4-Turbo supportano in modo nativo response_format.
-
Imodelli locali o altri modelli cloud (ad esempio, Claude, Gemini o Ollama) possono supportare output strutturati in modo diverso, a volte tramite chiamate a funzioni rigorose, a volte tramite l’applicazione di schemi basati sul testo.
E ricordate: response_format non è limitato a JSON. A seconda del modello, possono essere supportati anche altri formati, come testo semplice, XML o sintassi specifiche del dominio.
Conclusione
Con l’applicazione response_format di 4D AIKit, è possibile garantire che i risultati dell’intelligenza artificiale siano esattamente come li si desidera, coerenti, affidabili e pronti per essere inseriti direttamente nell’interfaccia utente, nel database o in qualsiasi altro sistema. Questa funzione aiuta gli sviluppatori a analizzare i risultati dell’IA senza sforzo e a integrare profondamente l’intelligenza nelle loro applicazioni 4D. Trasforma l’IA da semplice partner di chat in un potente motore di ragionamento strutturato, consentendo funzionalità più intelligenti e dinamiche di quanto gli utenti abbiano mai immaginato.
Al momento non è possibile lasciare commenti su questo post.