Las llamadas a funciones mejoran la capacidad del LLM para proporcionar respuestas pertinentes y contextuales.
Puedes proporcionar funciones personalizadas a un modelo de IA generativa con la API de llamada a función. El modelo no invoca directamente estas funciones, sino que genera un resultado de datos estructurados que especifica el nombre de la función y los argumentos sugeridos.
Este resultado permite llamar a API externas o sistemas de información como bases de datos, sistemas de administración de relaciones con clientes y repositorios de documentos. El LLM puede usar el resultado de la API para mejorar la calidad de la respuesta.
Para obtener más documentación conceptual sobre las llamadas a funciones, consulta Llamadas a funciones.
Modelos compatibles
- Gemini 3 Pro Modelo de vista previa
- Gemini 2.5 Pro
- Gemini 2.5 Flash Modelo de vista previa
- Gemini 2.5 Flash-Lite Modelo de vista previa
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash con audio nativo de la API de Live Modelo de vista previa
- Gemini 2.0 Flash con la API de Live Modelo de vista previa
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
Limitaciones:
- La cantidad máxima de declaraciones de funciones que se pueden proporcionar con la solicitud es de 128.
Ejemplo de sintaxis
Sintaxis para enviar una solicitud a la API de llamadas a funciones.
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
Consulta ejemplos para obtener detalles sobre la implementación.
FunctionDeclaration
Define una función para la que el modelo puede generar entradas JSON basadas en las especificaciones de OpenAPI 3.0.
| Parámetros | |
|---|---|
|
El nombre de la función a la que se llamará. Debe comenzar con una letra o un guion bajo. Debe tener caracteres de la A a la Z (mayúsculas o minúsculas), o números del 0 al 9, o contener guiones bajos, puntos o guiones, con una longitud máxima de 64. |
|
Opcional: La descripción y el propósito de la función El modelo utiliza esto para decidir cómo y si se debe llamar a la función. Para obtener mejores resultados, te recomendamos que incluyas una descripción. |
|
Opcional: Describe los parámetros de la función en el formato de objeto de esquema JSON de OpenAPI: especificación de OpenAPI 3.0. |
|
Opcional: Describe el resultado de la función en el formato de objeto de esquema JSON de OpenAPI: especificación de OpenAPI 3.0. |
Para obtener más información, consulta Llamadas a funciones.
Schema
Define el formato de los datos de entrada y salida en una llamada a una función según la especificación del esquema de OpenAPI 3.0.
| Parámetros | |
|---|---|
| tipo |
Enum. Es el tipo de datos. Debe ser uno de los siguientes:
|
description |
Opcional: Descripción de los datos. |
enum |
Opcional: Valores posibles del elemento de tipo primitivo con formato de enumeración. |
items |
Opcional: Esquema de los elementos de |
properties |
Opcional: Esquema de las propiedades de |
required |
Opcional: Propiedades obligatorias de |
nullable |
Opcional: Indica si el valor puede ser |
FunctionCallingConfig
El FunctionCallingConfig controla el comportamiento del modelo y determina qué tipo de función llamar.
| Parámetros | |
|---|---|
|
Opcional:
|
|
Opcional: Nombres de las funciones que se llamarán. Solo se establece cuando |
|
Opcional: Si es |
functionCall
Un functionCall predicho que muestra el modelo que contiene una cadena que representa el functionDeclaration.name y un objeto JSON estructurado que contiene los parámetros y sus valores.
| Parámetros | |
|---|---|
|
El nombre de la función a la que se llamará. |
|
Los parámetros y valores de la función en formato de objeto JSON Consulta Llamadas a funciones para obtener detalles sobre los parámetros. |
|
Opcional: Es un token opaco que encapsula el estado interno de razonamiento del modelo. Si está presente, se debe incluir en el siguiente turno de la conversación para mantener el contexto del uso de la herramienta de varios pasos. |
functionResponse
El resultado de una FunctionCall que contiene una cadena que representa la FunctionDeclaration.name. También contiene un objeto JSON estructurado con el resultado de la función (y lo usa como contexto del modelo). Esto debería contener el resultado de un FunctionCall basado en la predicción del modelo.
| Parámetros | |
|---|---|
|
El nombre de la función a la que se llamará. |
|
La respuesta de la función en formato de objeto JSON. |
|
Opcional: Son las partes multimodales opcionales de la respuesta de la función. Se puede usar para devolver imágenes, audio o video junto con una respuesta JSON estructurada. |
FunctionResponsePart
El objeto FunctionResponsePart contiene datos multimodales de la llamada a la función.
| Parámetros | |
|---|---|
|
Opcional: Son los datos intercalados de la parte de respuesta de la función. |
|
Opcional: Son los datos basados en el URI de la parte de respuesta de la función. |
FunctionResponseBlob
FunctionResponseBlob contiene datos intercalados para un FunctionResponsePart.
| Parámetros | |
|---|---|
|
Es el tipo de MIME de IANA de los datos intercalados. |
|
Son los datos binarios sin procesar. |
|
Opcional: Es el nombre visible de los datos intercalados. |
FunctionResponseFileData
El FunctionResponseFileData contiene datos basados en URI para un FunctionResponsePart.
| Parámetros | |
|---|---|
|
Es el tipo de MIME de IANA de los datos del archivo. |
|
Es el URI de los datos del archivo. |
|
Opcional: Es el nombre visible de los datos del archivo. |
Ejemplos
Envía una declaración de función
El siguiente ejemplo es un ejemplo básico de cómo enviar una consulta y una declaración de función al modelo:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: Es el ID del modelo que se está procesando.
- ROLE: La identidad de la entidad que crea el mensaje.
- TEXT: Es la instrucción que se enviará al modelo.
- NAME: el nombre de la función a la que se llamará.
- DESCRIPTION: la descripción y el propósito de la función.
- Para otros campos, consulta la tabla Lista de parámetros.
Método HTTP y URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
Cuerpo JSON de la solicitud:
{
"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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
Ejemplo del comando curl
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, for example San Francisco, CA or a zip code such as 95616"
}
},
"required": [
"location"
]
}
}
]
}]
}'
SDK de IA generativa para Python
Node.js
Java
Go
REST (OpenAI)
Puedes llamar a la API de Function Calling con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: .
- MODEL_ID: Es el ID del modelo que se está procesando.
Método HTTP y URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Cuerpo JSON de la solicitud:
{
"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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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)
Puedes llamar a la API de Function Calling con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Envía una declaración de función con FunctionCallingConfig
En el siguiente ejemplo, se muestra cómo pasar un FunctionCallingConfig al modelo:
El functionCallingConfig garantiza que el resultado del modelo siempre sea una llamada a una función específica. Para configurar, haz lo siguiente:
- Establece la llamada a función a
modeenANY. Especifica los nombres de las funciones que deseas usar en
allowed_function_names. Siallowed_function_namesestá vacío, se puede devolver cualquiera de las funciones proporcionadas.
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, for example: 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 generativa para Python
Node.js
Go
REST (OpenAI)
Puedes llamar a la API de Function Calling con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: .
- MODEL_ID: Es el ID del modelo que se está procesando.
Método HTTP y URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Cuerpo JSON de la solicitud:
{
"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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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)
Puedes llamar a la API de Function Calling con la biblioteca de OpenAI. Para obtener más información, consulta Cómo llamar a modelos de Vertex AI con la biblioteca de OpenAI.
¿Qué sigue?
Para obtener documentación detallada, consulta lo siguiente: