OpenAI
Questa pagina è stata tradotta automaticamente. Visualizza l'articolo originale in inglese.

Chiamata di funzioni nell'API OpenAI

Cos'è la chiamata di funzioni e come funziona nell'API OpenAI?

Aggiornato: 16 hours ago

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, ad esempio per dotare gli assistenti AI di capacità aggiuntive o per creare integrazioni profonde tra le tue applicazioni e gli LLM.

Scopri di più nella nostra guida per sviluppatori sulla chiamata di funzioni.

A giugno 2024 abbiamo lanciato i risultati strutturati. Quando lo 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 JSON Schema 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 oppure 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 in un gran numero di casi d'uso, ad esempio:

  • Consentire agli assistenti di recuperare dati:

    • un assistente AI deve recuperare i dati cliente più recenti da un sistema interno quando un utente chiede «quali sono i miei ordini recenti?» prima di poter generare la risposta per l'utente

  • Consentire agli assistenti di eseguire azioni:

    • un assistente AI deve pianificare riunioni in base alle preferenze dell'utente e alla disponibilità del calendario.

  • Consentire agli assistenti di eseguire calcoli:

    • un assistente tutor di matematica deve eseguire un calcolo matematico.

  • Creare workflow avanzati:

    • una pipeline di estrazione dati che recupera testo non elaborato, poi lo converte in dati strutturati e li salva in un database.

La chiamata di funzioni è supportata nella Responses API, che unifica capacità precedentemente suddivise tra la API per il completamento delle chat e la Assistants API.

Come posso usare la modalità JSON?

Quando la modalità JSON è attiva, l'output del modello è garantito come JSON valido, salvo alcuni casi limite che dovresti rilevare e gestire correttamente.

Per richiedere la modalità JSON con la Responses API o la API per il completamento delle chat, puoi impostare response_format su { "type": "json_object" } nei modelli supportati, ma funziona solo quando sono soddisfatte le precondizioni di modello/messaggio/strumento (ad esempio, il modello supporta json_object, la conversazione include un'istruzione per produrre JSON e gli eventuali vincoli degli strumenti sono compatibili). Per la modalità JSON con response_format: {"type": "json_object"}, almeno un messaggio della richiesta deve contenere json in qualche forma, ad esempio JSON, json o Json; altrimenti l'API restituisce un errore. Quando la chiamata di funzioni viene usata su modelli/percorsi compatibili, i vincoli JSON vengono applicati automaticamente agli argomenti delle chiamate di funzione; combinazioni incompatibili di modello o di strumento/formato di risposta possono essere rifiutate oppure potrebbero non usare il campionamento vincolato JSON.

Note importanti:

  • Quando usi la modalità JSON, devi sempre indicare al modello di produrre JSON tramite un messaggio nella conversazione, ad esempio nel tuo messaggio di sistema. Se non includi un'istruzione esplicita per generare JSON, il modello potrebbe produrre un flusso infinito di spazi bianchi 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 o le istruzioni di input pertinenti non contengano la parola json in 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 analizzabile senza errori. Dovresti usare i risultati strutturati per assicurarti che corrisponda al tuo schema oppure, se non è possibile, usare una libreria di convalida e potenzialmente nuovi tentativi per garantire 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)

Questo articolo è stato utile?