A chamada de funções melhora a capacidade do MDG de fornecer respostas relevantes e contextuais.
Pode fornecer funções personalizadas a um modelo de IA generativa com a API Function Calling. O modelo não invoca diretamente estas funções, mas gera uma saída de dados estruturados que especifica o nome da função e os argumentos sugeridos.
Este resultado permite a chamada de APIs externas ou sistemas de informações, como bases de dados, sistemas de gestão das relações com clientes e repositórios de documentos. O resultado da API pode ser usado pelo MDG para melhorar a qualidade das respostas.
Para ver mais documentação conceptual sobre a Chamada de funções, consulte o artigo Chamada de funções.
Modelos suportados
- Gemini 2.5 Flash (pré-visualização)
- Gemini 2.5 Flash-Lite (Pré-visualização)
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash com áudio nativo da API Live (Pré-visualização)
- Gemini 2.0 Flash com API Live (Pré-visualização)
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
Limitações:
- O número máximo de declarações de funções que podem ser fornecidas com o pedido é 128.
Sintaxe de exemplo
Sintaxe para enviar um pedido de API de chamada de função.
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": [ { ... } ] }] }'
Lista de parâmetros
Consulte exemplos para ver detalhes de implementação.
FunctionDeclaration
Define uma função para a qual o modelo pode gerar entradas JSON com base nas especificações da OpenAPI 3.0.
| Parâmetros | |
|---|---|
|
O nome da função a chamar. Tem de começar por uma letra ou um sublinhado. Tem de ser a-z, A-Z, 0-9 ou conter sublinhados, pontos ou traços, com um comprimento máximo de 64. |
|
Opcional: A descrição e a finalidade da função. O modelo usa isto para decidir como e se deve chamar a função. Para os melhores resultados, recomendamos que inclua uma descrição. |
|
Opcional: Descreve os parâmetros da função no formato de objeto de esquema JSON OpenAPI: especificação OpenAPI 3.0. |
|
Opcional: Descreve a saída da função no formato de objeto de esquema JSON OpenAPI: especificação OpenAPI 3.0. |
Para mais informações, consulte o artigo Chamada de funções
Schema
Define o formato dos dados de entrada e saída numa chamada de função com base na especificação do esquema OpenAPI 3.0.
| Parâmetros | |
|---|---|
| escrever |
Enum. O tipo de dados. Tem de ser um dos seguintes:
|
description |
Opcional: Descrição dos dados. |
enum |
Opcional: Valores possíveis do elemento de tipo primitivo com formato enum. |
items |
Opcional: Esquema dos elementos de |
properties |
Opcional: Esquema das propriedades de |
required |
Opcional: Propriedades obrigatórias de |
nullable |
Opcional: Indica se o valor pode ser |
FunctionCallingConfig
O FunctionCallingConfig controla o comportamento do modelo e determina que tipo de função chamar.
| Parâmetros | |
|---|---|
|
Opcional:
|
|
Opcional: Nomes das funções a chamar. Definido apenas quando o |
functionCall
Um functionCall previsto devolvido pelo modelo que contém uma string
que representa o functionDeclaration.name e um objeto JSON estruturado
que contém os parâmetros e os respetivos valores.
| Parâmetros | |
|---|---|
|
O nome da função a chamar. |
|
Os parâmetros e os valores da função no formato de objeto JSON. Consulte o artigo Chamada de funções para ver detalhes dos parâmetros. |
functionResponse
O resultado de um FunctionCall que contém uma string que representa o FunctionDeclaration.name. Também contém um objeto JSON estruturado com o resultado da função (e usa-o como contexto para o modelo). Este deve conter o resultado de um FunctionCall feito com base na previsão do modelo.
| Parâmetros | |
|---|---|
|
O nome da função a chamar. |
|
A resposta da função no formato de objeto JSON. |
Exemplos
Envie uma declaração de função
O exemplo seguinte é um exemplo básico de envio de uma consulta e uma declaração de função ao modelo.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- MODEL_ID: o ID do modelo que está a ser processado.
- ROLE: A identidade da entidade que cria a mensagem.
- TEXT: o comando a enviar para o modelo.
- NAME: o nome da função a chamar.
- DESCRIPTION: descrição e finalidade da função.
- Para outros campos, consulte a tabela Lista de parâmetros.
Método HTTP e URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
Corpo JSON do pedido:
{
"contents": [{
"role": "ROLE",
"parts": [{
"text": "TEXT"
}]
}],
"tools": [{
"function_declarations": [
{
"name": "NAME",
"description": "DESCRIPTION",
"parameters": {
"type": "TYPE",
"properties": {
"location": {
"type": "TYPE",
"description": "DESCRIPTION"
}
},
"required": [
"location"
]
}
}
]
}]
}
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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 de exemplo
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 de IA gen para Python
Node.js
Java
Ir
REST (OpenAI)
Pode chamar a API Function Calling através da biblioteca OpenAI. Para mais informações, consulte o artigo Chame modelos da Vertex AI através da biblioteca OpenAI.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- MODEL_ID: o ID do modelo que está a ser processado.
Método HTTP e URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Corpo JSON do pedido:
{
"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"]
}
}
}
]
}
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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)
Pode chamar a API Function Calling através da biblioteca OpenAI. Para mais informações, consulte o artigo Chame modelos da Vertex AI através da biblioteca OpenAI.
Envie uma declaração de função com FunctionCallingConfig
O exemplo seguinte demonstra como transmitir um FunctionCallingConfig
ao modelo.
O functionCallingConfig garante que o resultado do modelo é sempre uma chamada de função específica. Para configurar:
- Defina a chamada de função
modeparaANY. Especifique os nomes das funções que quer usar em
allowed_function_names. Seallowed_function_namesestiver vazio, pode ser devolvida qualquer uma das funções fornecidas.
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 de IA gen para Python
Node.js
Ir
REST (OpenAI)
Pode chamar a API Function Calling através da biblioteca OpenAI. Para mais informações, consulte o artigo Chame modelos da Vertex AI através da biblioteca OpenAI.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- MODEL_ID: o ID do modelo que está a ser processado.
Método HTTP e URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Corpo JSON do pedido:
{
"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"
}
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json,
e execute o seguinte 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)
Pode chamar a API Function Calling através da biblioteca OpenAI. Para mais informações, consulte o artigo Chame modelos da Vertex AI através da biblioteca OpenAI.
O que se segue?
Para ver documentação detalhada, consulte o seguinte: