Skip to main content
Il function calling permette a un modello di scegliere chiamate strutturate a strumenti che la tua applicazione può eseguire. Il modello non esegue direttamente la funzione. Restituisce il nome della funzione e gli argomenti, il tuo codice esegue la funzione e tu invii il risultato al modello. Usa il function calling quando il modello ha bisogno di dati in tempo reale, azioni applicative, ricerche in un database o calcoli deterministici.

Definizione di Base di uno Strumento

Definisci gli strumenti con l’array tools compatibile con OpenAI:

Esecuzione dello Strumento

Quando il modello sceglie uno strumento, analizza message.tool_calls, effettua il parsing degli argomenti, esegui la funzione della tua applicazione e poi invia il risultato come messaggio tool.
Python

Scelta di un Modello

Il supporto al function calling dipende dal modello. Usa la pagina Modelli di Testo o l’API Modelli per trovare modelli con supportsFunctionCalling.
Considera gli argomenti degli strumenti come input non attendibile. Convalida gli argomenti prima di usarli in query al database, comandi shell, pagamenti o altre operazioni con effetti collaterali.

Andare Oltre

L’esempio qui sopra si ferma dopo un solo giro. Gli agenti reali continuano, perché di solito il modello ha bisogno di più strumenti prima di poter rispondere. Costruire un agente che usa strumenti con il function calling percorre l’intero ciclo su un database che il modello non ha mai visto, incluse chiamate parallele agli strumenti, la restituzione di errori dai quali il modello si riprende e la differenza tra un modello che rifiuta e una guardia che nega.

Consigli di Progettazione

  • Mantieni i nomi e le descrizioni degli strumenti brevi e letterali.
  • Usa JSON Schema per rendere semplice al modello la produzione di argomenti validi.
  • Preferisci strumenti specifici con input chiari rispetto a un unico strumento generico con molti comportamenti opzionali.
  • Restituisci risultati degli strumenti concisi affinché la risposta finale abbia contesto sufficiente senza sprecare token.

Risorse Correlate