Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe la llamada a funciones y cómo usarla como parte de los flujos de trabajo de una aplicación de IA generativa. La llamada a funciones de Databricks es compatible con OpenAI y solo está disponible durante el servicio de modelos como parte de las API de Foundation Model y en los puntos de conexión para los modelos externos.
¿Qué es la llamada a funciones?
La llamada a funciones proporciona una manera de controlar la salida de los modelos grandes de lenguaje (LLM), de forma que generen respuestas estructuradas de forma más confiable. Al usar una llamada a funciones, se describen las funciones en la llamada a la API especificando los argumentos de la función mediante un esquema JSON. El propio LLM no llama a estas funciones, sino que crea un objeto JSON que los usuarios pueden usar para llamar a las funciones en su código.
En el caso de las llamadas a funciones en Databricks, la secuencia básica de pasos es la siguiente:
- Llamada al modelo mediante la consulta enviada y un conjunto de funciones definidas en el parámetro
tools. - El modelo decide si se debe llamar a las funciones definidas o no. Cuando se llama a la función, el contenido es un objeto JSON de cadenas que se adhiere al esquema personalizado.
- Análisis de las cadenas en JSON en el código y llamada a la función con los argumentos proporcionados, si existen.
- Nueva llamada al modelo anexando la respuesta estructurada como un nuevo mensaje. La estructura de la respuesta se define mediante las funciones proporcionadas anteriormente en
tools. Desde aquí, el modelo resume los resultados y envía el resumen al usuario.
Cuándo se debe usar la llamada a funciones
A continuación, se muestran casos de uso de ejemplo de la llamada a funciones:
- Creación de asistentes que puedan responder a preguntas mediante llamadas a otras API. Por ejemplo, puede definir funciones como las siguientes:
send_email(to: string, body: string)ocurrent_weather(location: string, unit: 'celsius' | 'fahrenheit'). - Definición y uso de llamadas API basadas en lenguaje natural. Por ejemplo, tomar la instrucción: "¿Quiénes son mis principales clientes?" convertirla en una llamada API denominada
get_customers(min_revenue: int, created_before: string, limit: int)y llamar a esa API.
Para las tareas de inferencia por lotes o procesamiento de datos, como convertir datos no estructurados en datos estructurados. Databricks recomienda usar salidas estructuradas.
Modelos admitidos
En la tabla siguiente se enumeran los modelos admitidos y qué característica de servicio de modelos está disponible con cada modelo. Consulte Licencias y términos aplicables para desarrolladores de modelos para estos modelos.
- Para ver los modelos puestos a disposición por las API de Foundation Model, consulte Límites de las API de Foundation Model para la disponibilidad en regiones.
- Para ver los modelos puestos a disposición por modelos externos, consulte Disponibilidad de regiones para la disponibilidad en región.
Importante
Meta-Llama-3.1-405B-Instruct se retirará como se indica a continuación. Consulte Modelos retirados para ver el modelo de reemplazo recomendado e instrucciones sobre cómo migrar durante el desuso.
- A partir del 15 de febrero de 2026, este modelo no está disponible para cargas de trabajo de pago por token.
- A partir del 15 de mayo de 2026, este modelo no estará disponible para cargas de trabajo con rendimiento aprovisionado.
A partir del 11 de diciembre de 2024, Meta-Llama-3.3-70B-Instruct reemplaza la compatibilidad con Meta-Llama-3.1-70B-Instruct en los puntos de conexión de las API de Foundation Model de pago por token.
| Modelo | Disponible mediante la característica de servicio de modelos | Notas |
|---|---|---|
| Claude-Sonnet-4.5 | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| Claude-Haiku-4.5 | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| Qwen3-Next 80B A3B Instruct (beta) | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| GPT OSS 20B | API de Foundation Model | Se admite en los puntos de conexión de pago por token y de rendimiento aprovisionado. |
| GPT OSS 120B | API de Foundation Model | Se admite en los puntos de conexión de pago por token y de rendimiento aprovisionado. |
| Gemma-3-12B | API de Foundation Model | Se admite en los puntos de conexión de pago por token y de rendimiento aprovisionado. |
| Claude-Sonnet-4 | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| Claude-Opus-4.5 | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| Claude-Opus-4.1 | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| claude-3-7-Sonnet | API de Foundation Model | Admitido en los puntos de conexión de pago por token. |
| Meta-Llama-4-Maverick | API de Foundation Model | Se admite en cargas de trabajo de rendimiento de pago por token y rendimiento aprovisionado. |
| Meta-Llama-3.3-70B-Instruct | API de Foundation Model | Se admite en cargas de trabajo de rendimiento de pago por token y rendimiento aprovisionado. |
| Meta-Llama-3.1-405B-Instruct | API de Foundation Model | Se admite en cargas de trabajo de rendimiento de pago por token y rendimiento aprovisionado. |
| Meta-Llama-3.1-8B-Instruct | API de Foundation Model | Se admite en cargas de trabajo de rendimiento de pago por token y rendimiento aprovisionado. |
| gpt-4o | Modelos externos | |
| gpt-4o-2024-08-06 | Modelos externos | |
| gpt-4o-2024-05-13 | Modelos externos | |
| gpt-4o-mini | Modelos externos | |
| claude-3-5-sonnet-latest | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-5-haiku-latest | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-5-opus-latest | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-5-sonnet-20241022 | Modelos externos | Proveedor de modelos antropológicos. Este modelo admite llamadas a herramientas mediante Computer Use (beta). |
| claude-3-5-haiku-20241022 | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-5-sonnet-20240620 | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-haiku-20240307 | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-opus-20240229 | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-sonnet-20240229 | Modelos externos | Proveedor de modelos antropológicos |
| claude-3-5-sonnet-20241022-v2:0 | Modelos externos | Proveedor de modelos Bedrock Anthropic. Este modelo admite llamadas a herramientas mediante Computer Use (beta). |
| claude-3-5-haiku-20241022-v1:0 | Modelos externos | Proveedor de modelos Bedrock Anthropic |
| claude-3-5-sonnet-20240620-v1:0 | Modelos externos | Proveedor de modelos Bedrock Anthropic |
| claude-3-sonnet-20240229-v1:0 | Modelos externos | Proveedor de modelos Bedrock Anthropic |
| claude-3-opus-20240229-v1:0 | Modelos externos | Proveedor de modelos Bedrock Anthropic |
Usar llamada de función
Para usar la llamada a funciones con una aplicación de IA generativa, debe proporcionar parameters de la función y una description.
El comportamiento predeterminado de tool_choice es "auto". Esto permite al modelo decidir a qué funciones llamar y si debe llamarlas.
Puede personalizar el comportamiento predeterminado en función de su caso de uso. A continuación se muestran las opciones:
- Establezca
tool_choice: "required". En este escenario, el modelo siempre llama a una o varias funciones. El modelo selecciona a qué función o funciones llamar. - Establezca
tool_choice: {"type": "function", "function": {"name": "my_function"}}. En este escenario, el modelo llama solamente a una función específica. - Establezca
tool_choice: "none"para deshabilitar la llamada a funciones y que el modelo solo genere un mensaje orientado al usuario.
A continuación se muestra un ejemplo de un solo turno con el SDK de OpenAI y su parámetro tools. Consulte Chat Completions API para obtener más detalles de sintaxis.
Importante
En la versión preliminar pública, la llamada a funciones en Databricks está optimizada para llamadas a funciones de un solo turno.
import os
import json
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('YOUR_DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('YOUR_DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
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"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
}
}
}
}
]
messages = [{"role": "user", "content": "What is the current temperature of Chicago?"}]
response = client.chat.completions.create(
model="databricks-meta-llama-3-3-70b-instruct",
messages=messages,
tools=tools,
tool_choice="auto",
)
print(json.dumps(response.choices[0].message.model_dump()['tool_calls'], indent=2))
Este parámetro también admite Uso de Computadora (beta) para los modelos de Claude.
Esquema JSON
Las API de Foundation Model admiten ampliamente las definiciones de función aceptadas por OpenAI. Sin embargo, si se usa un esquema JSON más sencillo para las definiciones de llamadas a funciones, la generación JSON de llamadas a funciones es de mayor calidad. Para favorecer una generación de mayor calidad, las API de Foundation Model solo admiten un subconjunto de especificaciones de esquema JSON.
No se admiten las siguientes claves de definición de llamada a funciones:
- Expresiones regulares mediante
pattern. - Composición y validación de esquemas o anidados complejos mediante
anyOf,oneOf,allOf,prefixItemso$ref. - Listas de tipos, excepto en el caso especial de
[type, “null”], donde un tipo de la lista es un tipo JSON válido y el otro es"null".
Asimismo, se aplican las siguientes limitaciones:
- El número máximo de claves especificadas en el esquema JSON es
16. - Las API de Foundation Model no aplican restricciones de longitud ni tamaño para objetos y matrices.
- Esto incluye palabras clave como
maxProperties,minPropertiesymaxLength.
- Esto incluye palabras clave como
- Los esquemas JSON muy anidados dan lugar a una generación de menor calidad. Si es posible, intente aplanar el esquema JSON para obtener mejores resultados.
Uso de tokens
Para mejorar la calidad de las llamadas a herramientas, se usa la inserción de indicaciones y otras técnicas. Hacer esto influye en el número de tokens de entrada y salida consumidos por el modelo, lo que a su vez repercute en la facturación. Cuantos más herramientas use, más aumenta el número de tokens de entrada.
Limitaciones
A continuación se muestran las limitaciones de la llamada a funciones en la versión preliminar pública:
- Para el llamado a función multiturno, Databricks recomienda los modelos de Claude admitidos.
- Si usa Llama 4 Maverick, la solución de llamada de función actual está optimizada para llamadas de función de turno único. La llamada a funciones multiturno se admite en la versión preliminar, pero está en desarrollo.
- No se admiten las llamadas a funciones paralelas.
- El número máximo de funciones que se pueden definir en
toolses de 32 funciones. - Para la compatibilidad con el rendimiento aprovisionado, la llamada a funciones solo se admite en nuevos puntos de conexión. No se puede agregar una llamada de función a los puntos de conexión creados anteriormente.
Ejemplo de cuaderno
Consulte el cuaderno siguiente para ver ejemplos detallados de llamadas a funciones.