All’11 marzo 2025, abbiamo rilasciato i componenti fondamentali della nostra nuova piattaforma Agents. Per i dettagli, consulta la documentazione API per la nostra API Responses, gli strumenti tra cui Web Search, File Search e Computer Use, e il nostro Agents SDK con Tracing.
La chiamata di funzioni ti consente di collegare i modelli OpenAI a strumenti e sistemi esterni. È utile per molte cose, come dotare gli assistenti AI di capacità o creare integrazioni profonde tra le tue applicazioni e gli LLM.
Scopri di più nella nostra guida per sviluppatori alla chiamata di funzioni.
A giugno 2024 abbiamo lanciato i risultati strutturati. Quando li attivi impostando strict: true nella definizione della funzione, i risultati strutturati garantiscono che gli argomenti generati dal modello per una chiamata di funzione corrispondano esattamente allo schema JSON che hai fornito nella definizione della funzione.
A ottobre 2024 abbiamo lanciato la funzionalità «Genera qualsiasi cosa», che consente agli sviluppatori di descrivere una funzione, incollarla direttamente o incollare il proprio codice e generare uno schema di funzione valido. Scopri di più su «Genera qualsiasi cosa» in questo articolo del centro assistenza
Come posso usare la chiamata di funzioni?
La chiamata di funzioni è utile per un gran numero di casi d'uso, ad esempio:
Consentire agli assistenti di recuperare dati:
Consentire agli assistenti di eseguire azioni:
Consentire agli assistenti di eseguire calcoli:
Creare workflow avanzati:
una pipeline di estrazione dei dati che recupera testo grezzo, poi lo converte in dati strutturati e lo salva in un database.
La chiamata di funzioni è supportata nell'API Responses, che unifica funzionalità precedentemente suddivise tra l'API per il completamento delle chat e l'API Assistants.
Come posso usare la modalità JSON?
Quando la modalità JSON è attiva, l'output del modello è garantito come JSON valido, tranne in alcuni casi limite che devi rilevare e gestire in modo appropriato.
Per richiedere la modalità JSON con l'API per il completamento delle chat, imposta response_format su { "type": "json_object" } nei modelli supportati. Con l'API Responses, imposta text.format su { "type": "json_object" }, ad esempio text: { "format": { "type": "json_object" } }, ove applicabile. In entrambe le API, la modalità JSON funziona solo quando sono soddisfatti i prerequisiti di modello/messaggio/strumento (ad esempio, il modello supporta json_object, la conversazione include istruzioni per produrre JSON e gli eventuali vincoli degli strumenti sono compatibili). Almeno un messaggio di richiesta o un messaggio di input nel contesto di input effettivo deve contenere json in una forma senza distinzione tra maiuscole e minuscole, come JSON, json o Json; in caso contrario, l'API restituisce un errore. In Responses, il solo campo di istruzioni di primo livello non soddisfa questa convalida. Quando la chiamata di funzioni viene usata su modelli/percorsi compatibili, i vincoli JSON vengono applicati automaticamente agli argomenti delle chiamate di funzione; modelli incompatibili o combinazioni di strumenti/formato di risposta potrebbero essere rifiutati o non usare il campionamento vincolato a JSON.
Note importanti:
Quando usi la modalità JSON, devi sempre istruire il modello a produrre JSON tramite un messaggio nella conversazione, ad esempio tramite il tuo messaggio di sistema. Se non includi un'istruzione esplicita per generare JSON, il modello potrebbe generare un flusso infinito di spazi vuoti e la richiesta potrebbe continuare finché non raggiunge il limite di token. Per aiutarti a non dimenticarlo, la modalità JSON rifiuta le richieste a meno che i messaggi di input o le istruzioni pertinenti non contengano la parola
jsonin qualche forma, senza distinzione tra maiuscole e minuscole.La modalità JSON non garantisce che l'output corrisponda a uno schema specifico, ma solo che sia valido e venga analizzato senza errori. Dovresti usare i risultati strutturati per assicurarti che corrisponda al tuo schema oppure, se ciò non è possibile, dovresti usare una libreria di convalida e potenzialmente dei tentativi ripetuti per assicurarti che l'output corrisponda allo schema desiderato.
La tua applicazione deve rilevare e gestire i casi limite che possono far sì che l'output del modello non sia un oggetto JSON completo (vedi sotto)
