← 返回列表

Riepilogo della Tecnologia Function Calling

Riepilogo della Tecnologia Function Calling

1. Definizione

Function Calling è un meccanismo che consente agli sviluppatori di descrivere strumenti esterni disponibili (come API) a un grande modello linguistico (LLM) tramite JSON schema. Quando il modello ritiene necessario chiamare uno strumento per rispondere a una domanda dell'utente, produce dati JSON strutturati tool_calls che indicano il nome della funzione e i parametri da chiamare. Il programma host analizza ed esegue questa chiamata, restituisce il risultato al modello, che genera quindi la risposta finale.

2. Principio fondamentale e problemi risolti

  • Essenza: un ciclo chiuso di "due turni di dialogo + esecuzione intermedia". Nel primo turno, il modello decide e produce una richiesta di chiamata dello strumento; nel mezzo, il codice esegue lo strumento; nel secondo turno, il modello genera la risposta finale basandosi sul risultato dell'esecuzione.
  • Problemi risolti: risolve il problema precedente in cui, per far chiamare strumenti al modello, si doveva fare affidamento su un'analisi del linguaggio naturale instabile e soggetta a errori (istruzioni if/else), migliorando la standardizzazione e l'accuratezza attraverso l'output strutturato.

3. Divisione dei compiti (analogia con la delega di compiti)

  • Sviluppatore (HR): definisce gli strumenti, scrive il JSON Schema che descrive la funzionalità, i parametri, ecc.
  • Modello LLM (manager): comprende la descrizione dello strumento, decide se è necessario chiamarlo, quale strumento chiamare e quali parametri usare, e produce una richiesta di chiamata strutturata (tool_calls). Il modello prende solo decisioni e genera testo, non esegue codice.
  • Esecutore/codice host (impiegato): analizza la richiesta tool_calls del modello, esegue effettivamente la funzione o la chiamata API corrispondente e restituisce il risultato.

4. Definizione dello strumento (JSON Schema)

Lo Schema è il "manuale" dello strumento; le informazioni chiave includono:
- name: identificatore univoco dello strumento.
- description: fondamentale, il modello si basa interamente su questa descrizione per decidere se chiamare lo strumento. Più chiara e accurata è la descrizione, più precisa sarà la decisione del modello.
- parameters: definisce i parametri richiesti dallo strumento, il loro tipo, descrizione, vincoli (ad esempio valori enum, obbligatorietà, ecc.).

5. Flusso di chiamata completo

L'articolo, attraverso un esempio di codice per interrogare il meteo, mostra l'intero processo: dalla domanda dell'utente, alla prima chiamata al modello con la definizione dello strumento, al ritorno di tool_calls da parte del modello, all'esecuzione della funzione da parte del codice, all'inserimento del risultato come messaggio con role: "tool" nella cronologia della conversazione, fino alla generazione della risposta finale in linguaggio naturale da parte del modello.

6. Funzionalità avanzata - Chiamate parallele agli strumenti

Quando la domanda dell'utente richiede la collaborazione di più strumenti (ad esempio, interrogare simultaneamente il meteo di più città), il modello può produrre in una singola risposta un elenco contenente più tool_calls. Il codice host può eseguire queste chiamate in parallelo, quindi restituire tutti i risultati al modello per una sintesi, migliorando così l'efficienza.

评论

暂无已展示的评论。

发表评论(匿名)