0Pricing
Learn AI with Python · Lezione

Function calling e utilizzo degli strumenti con gli LLM

Definizione degli strumenti come schema JSON, gestione di tool_calls nella risposta, esecuzione e restituzione dei risultati

Function calling e utilizzo degli strumenti con gli LLM è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Che cos'è il function calling

Il function calling, chiamato anche utilizzo degli strumenti, consente a un LLM di richiedere al Suo codice l'esecuzione di una funzione. Il modello non esegue nulla autonomamente: restituisce una richiesta strutturata che indica «chiami questa funzione con questi argomenti». Il programma la esegue e gli invia il risultato.

È così che gli LLM recuperano dati aggiornati, eseguono calcoli o attivano azioni reali.

Descrivere uno strumento

Fornisca al modello un elenco di tools. Ogni strumento ha un name, una description e dei parameters definiti come JSON Schema. La descrizione è fondamentale: il modello la utilizza per decidere quando applicare lo strumento.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "City name"}
            },
            "required": ["city"]
        }
    }
}]

JSON Schema per i parametri

Il campo parameters è un JSON Schema standard. Dichiari un oggetto con properties, ciascuna dotata di un type e di una descrizione, oltre a un array required. In questo modo indica al modello esattamente quali argomenti produrre.

"parameters": {
    "type": "object",
    "properties": {
        "city": {"type": "string"},
        "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
    },
    "required": ["city"]
}

Passare gli strumenti al modello

Invii l'elenco tools a chat.completions.create(). Ora il modello può rispondere con del testo oppure con una chiamata a uno strumento, a seconda della richiesta dell'user.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Weather in Tokyo?"}],
    tools=tools
)

Rilevare una chiamata a uno strumento

Quando il modello vuole utilizzare uno strumento, la risposta contiene message.tool_calls invece del testo normale. Verifichi l'esistenza di questo elenco prima di presumere di avere una risposta testuale.

msg = response.choices[0].message

if msg.tool_calls:
    print("Model wants to call a tool")
else:
    print(msg.content)

Analizzare gli argomenti

Ogni chiamata a uno strumento contiene function.name e function.arguments. Gli argomenti arrivano come stringa JSON, quindi li analizzi con json.loads() prima di utilizzarli.

import json

call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args)  # get_weather {"city": "Tokyo"}

Eseguire la funzione

Ora esegua la Sua funzione Python effettiva con gli argomenti analizzati. L'LLM ha solo deciso quale funzione chiamare; è il Suo codice a svolgere il lavoro reale.

def get_weather(city):
    return {"city": city, "temp_c": 18, "condition": "Cloudy"}

result = get_weather(**args)

Restituire il risultato al modello

Invii il risultato al modello, così potrà scrivere una risposta in linguaggio naturale. Aggiunga il messaggio originale dell'assistant, quindi un messaggio con ruolo tool che contenga il risultato e il relativo tool_call_id.

messages.append(msg)  # the assistant tool-call message
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps(result)
})

Generare la risposta finale

Chiami nuovamente il modello con l'elenco messages aggiornato. Ora che dispone del risultato dello strumento, produrrà una risposta finale chiara e naturale per l'user.

final = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools
)
print(final.choices[0].message.content)

Il ciclo completo di utilizzo degli strumenti

Il ciclo completo è: (1) inviare gli strumenti, (2) ricevere una chiamata a uno strumento dal modello, (3) analizzare gli argomenti, (4) eseguire la funzione, (5) restituire il risultato come messaggio dello strumento, (6) lasciare che il modello scriva la risposta. Il modello può richiedere diverse chiamate a strumenti prima di terminare, quindi continui il ciclo finché tool_calls non è vuoto.

Controllare la scelta dello strumento

Utilizzi il parametro tool_choice per orientare il comportamento. "auto" (impostazione predefinita) lascia decidere al modello; "none" vieta l'uso degli strumenti; passando il nome di uno strumento specifico forza l'utilizzo esatto di quella funzione. È utile quando deve garantire un output strutturato.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}}
)

Verifica rapida

Verifichi la Sua comprensione dell'utilizzo degli strumenti.

Riepilogo: function calling

Ha definito gli tools con un nome, una descrizione e parametri JSON Schema, quindi li ha passati al modello. Ha rilevato tool_calls, analizzato function.arguments con json.loads(), eseguito la Sua funzione reale e restituito il risultato come messaggio con ruolo tool e il tool_call_id corrispondente.

Una chiamata finale al modello trasforma il risultato grezzo in una risposta naturale, completando il ciclo di utilizzo degli strumenti.

Domande Frequenti

La lezione «Function calling e utilizzo degli strumenti con gli LLM» è gratuita?

Sì — il testo completo di «Function calling e utilizzo degli strumenti con gli LLM» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Function calling e utilizzo degli strumenti con gli LLM»?

Definizione degli strumenti come schema JSON, gestione di tool_calls nella risposta, esecuzione e restituzione dei risultati Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Function calling e utilizzo degli strumenti con gli LLM»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. API OpenAI: chat.completions e streaming
  2. API Anthropic Claude in Python
  3. Function calling e utilizzo degli strumenti con gli LLM
  4. Prompt engineering per app LLM in produzione
← Torna a Learn AI with Python