- Modelli supportati: elenca i modelli che supportano la chiamata di funzione.
- Sintassi di esempio: mostra la struttura di base di una richiesta API di chiamata di funzione.
- Parametri API: descrive in dettaglio i parametri utilizzati nella chiamata di funzione, ad esempio
FunctionDeclaration
eFunctionCallingConfig
. - Esempi: fornisce esempi di codice per l'invio di dichiarazioni di funzioni e la configurazione del comportamento delle chiamate di funzioni.
La chiamata di funzione migliora la capacità dell'LLM di fornire risposte pertinenti e contestuali.
Con l'API Function Calling, puoi fornire funzioni personalizzate a un modello di AI generativa. Il modello non richiama direttamente queste funzioni. Genera invece un output di dati strutturati che specifica il nome della funzione e gli argomenti suggeriti. Questo output ti consente di chiamare API o sistemi informativi esterni, come database, sistemi di gestione dei rapporti con i clienti (CRM) e repository di documenti. Puoi quindi fornire l'output dell'API risultante al modello per migliorare la qualità della risposta.
Per una panoramica concettuale della chiamata di funzione, consulta Chiamata di funzione.
Modelli supportati
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash con audio nativo dell'API Live
Anteprima - Gemini 2.0 Flash con API Live
Anteprima - Vertex AI Model Optimizer
Sperimentale - Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
Limitazioni:
- Puoi fornire un massimo di 128 dichiarazioni di funzioni per ogni richiesta.
Sintassi di esempio
L'esempio seguente mostra la sintassi di una richiesta API di chiamata di funzione.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "tools": [{ "function_declarations": [ { ... } ] }] }'
Parametri API
Questa sezione descrive i parametri per la chiamata di funzione. Per i dettagli di implementazione, consulta la sezione Esempi.
FunctionDeclaration
Un FunctionDeclaration
definisce una funzione per la quale il modello può generare input JSON in base alle specifiche OpenAPI 3.0.
Parametri | |
---|---|
|
Il nome della funzione da chiamare. Il nome deve iniziare con una lettera o un trattino basso. Può contenere lettere (a-z, A-Z), numeri (0-9), trattini bassi, punti o trattini, con una lunghezza massima di 64 caratteri. |
|
(Facoltativo) Una descrizione dello scopo della funzione. Il modello utilizza questa descrizione per decidere come e se chiamare la funzione. Per risultati ottimali, ti consigliamo di includere una descrizione. |
|
(Facoltativo) I parametri della funzione, descritti nel formato dell'oggetto schema JSON OpenAPI. |
|
(Facoltativo) L'output della funzione, descritto nel formato dell'oggetto schema JSON OpenAPI. |
Per saperne di più, consulta Chiamata di funzioni.
Schema
Un Schema
definisce il formato dei dati di input e output in una chiamata di funzione, in base alla specifica dello
schema OpenAPI 3.0.
Parametri | |
---|---|
tipo |
Il tipo di dati. Deve essere uno dei seguenti:
|
description |
(Facoltativo) Una descrizione dei dati. |
enum |
(Facoltativo) I valori possibili per un elemento di un tipo primitivo. |
items |
(Facoltativo) Lo schema per gli elementi di un tipo |
properties |
(Facoltativo) Lo schema per le proprietà di un tipo |
required |
(Facoltativo) Le proprietà obbligatorie di un tipo |
nullable |
(Facoltativo) Indica se il valore può essere |
FunctionCallingConfig
FunctionCallingConfig
ti consente di controllare il comportamento del modello e determinare quale funzione chiamare.
Parametri | |
---|---|
|
(Facoltativo)
|
|
(Facoltativo) Un elenco di nomi di funzioni da chiamare. Puoi impostarlo solo quando |
functionCall
Una functionCall
è una previsione restituita dal modello. Contiene il nome della funzione da chiamare (functionDeclaration.name
) e un oggetto JSON strutturato con i parametri e i relativi valori.
Parametri | |
---|---|
|
Il nome della funzione da chiamare. |
|
I parametri della funzione e i relativi valori in formato oggetto JSON. Per i dettagli sui parametri, consulta la sezione Chiamata di funzione. |
functionResponse
Un functionResponse
è l'output di un FunctionCall
. Contiene il nome della funzione chiamata e un oggetto JSON strutturato con l'output della funzione. Fornisci questa risposta al modello da utilizzare come contesto.
Parametri | |
---|---|
|
Il nome della funzione chiamata. |
|
La risposta della funzione in formato oggetto JSON. |
Esempi
Inviare una dichiarazione di funzione
L'esempio seguente mostra come inviare una query e una dichiarazione di funzione al modello.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- MODEL_ID: l'ID del modello in fase di elaborazione.
- ROLE: l'identità dell'entità che crea il messaggio.
- TEXT: Il prompt da inviare al modello.
- NAME: il nome della funzione da chiamare.
- DESCRIPTION: descrizione e scopo della funzione.
- Per gli altri campi, consulta la tabella Elenco dei parametri.
Metodo HTTP e URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }], "tools": [{ "function_declarations": [ { "name": "NAME", "description": "DESCRIPTION", "parameters": { "type": "TYPE", "properties": { "location": { "type": "TYPE", "description": "DESCRIPTION" } }, "required": [ "location" ] } } ] }] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Comando curl di esempio
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "What is the weather in Boston?"
}]
}],
"tools": [{
"functionDeclarations": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
}
},
"required": [
"location"
]
}
}
]
}]
}'
SDK Gen AI per Python
Node.js
Java
Go
REST (OpenAI)
Puoi chiamare l'API Function Calling utilizzando la libreria OpenAI. Per ulteriori informazioni, consulta Richiamare i modelli Vertex AI utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: .
- MODEL_ID: l'ID del modello in fase di elaborazione.
Metodo HTTP e URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "messages": [ { "role": "user", "content": "What is the weather in Boston?" } ], "tools": [ { "type": "function", "function": { "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" } }, "required": ["location"] } } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Function Calling utilizzando la libreria OpenAI. Per ulteriori informazioni, consulta Richiamare i modelli Vertex AI utilizzando la libreria OpenAI.
Configurare il comportamento della chiamata di funzione
Il seguente esempio mostra come passare un FunctionCallingConfig
al modello.
Puoi utilizzare functionCallingConfig
per richiedere al modello di restituire una chiamata di funzione specifica. Per configurare questo comportamento:
- Imposta la chiamata di funzione
mode
suANY
. Specifica i nomi delle funzioni che vuoi utilizzare in
allowed_function_names
. Seallowed_function_names
è vuoto, può essere restituita una qualsiasi delle funzioni fornite.
REST
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Do you have the White Pixel 8 Pro 128GB in stock in the US?"
}]
}],
"tools": [{
"functionDeclarations": [
{
"name": "get_product_sku",
"description": "Get the available inventory for a Google products, e.g: Pixel phones, Pixel Watches, Google Home etc",
"parameters": {
"type": "object",
"properties": {
"product_name": {"type": "string", "description": "Product name"}
}
}
},
{
"name": "get_store_location",
"description": "Get the location of the closest store",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "Location"}
},
}
}
]
}],
"toolConfig": {
"functionCallingConfig": {
"mode":"ANY",
"allowedFunctionNames": ["get_product_sku"]
}
},
"generationConfig": {
"temperature": 0.95,
"topP": 1.0,
"maxOutputTokens": 8192
}
}'
SDK Gen AI per Python
Node.js
Go
REST (OpenAI)
Puoi chiamare l'API Function Calling utilizzando la libreria OpenAI. Per ulteriori informazioni, consulta Richiamare i modelli Vertex AI utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: .
- MODEL_ID: l'ID del modello in fase di elaborazione.
Metodo HTTP e URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "messages": [ { "role": "user", "content": "What is the weather in Boston?" } ], "tools": [ { "type": "function", "function": { "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" } }, "required": ["location"] } } } ], "tool_choice": "auto" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Function Calling utilizzando la libreria OpenAI. Per ulteriori informazioni, consulta Richiamare i modelli Vertex AI utilizzando la libreria OpenAI.
Passaggi successivi
Per saperne di più, consulta la seguente documentazione: