Come usare le risposte strutturate
Per utilizzare correttamente il campo “response_format”, puoi definire il tuo schema con varie “properties”, che rappresentano categorie di output, ciascuna con tipi di dati configurati individualmente. Questi oggetti possono essere annidati per creare strutture di output più avanzate. Ecco un esempio di chiamata API che usa response_format per spiegare il processo passo-passo della risoluzione di un’equazione matematica. Puoi vedere che le properties sono state configurate per richiedere sia “steps” sia “final_answer” all’interno della risposta. Nel nesting, la categoria steps consiste sia di una “explanation” sia di un “output”, entrambi stringhe.Gotcha
Ecco alcuni requisiti chiave da tenere a mente quando usi gli output strutturati tramite response_format:- Le richieste iniziali che usano response_format possono impiegare più tempo a generare una risposta. Le richieste successive non avranno la stessa latenza della richiesta iniziale.
-
Per query più grandi, il modello può fallire il completamento se vengono raggiunti
max_tokenso il timeout del modello, o se vengono violati i rate limit - Un formato di schema errato comporterà errori al completamento, solitamente per timeout
- Sebbene response_format garantisca che il modello produca un output in un modo specifico, non garantisce che il modello fornisca le informazioni corrette al suo interno. Il contenuto è determinato dal prompt e dalle prestazioni del modello.
- Gli output strutturati tramite response_format non sono compatibili con le chiamate parallele di funzioni
-
Importante: tutti i campi o parametri devono includere un tag
required. Per rendere un campo opzionale, devi aggiungere un’opzionenullall’interno deltypedel campo, in questo modo:"type": ["string", "null"] -
È possibile rendere i campi opzionali fornendo opzioni
nullall’interno del campo required per consentire una risposta vuota. -
Importante:
additionalPropertiesdeve essere impostato a false affinché response_format funzioni correttamente -
Importante:
strictdeve essere impostato a true affinché response_format funzioni correttamente