Aspectos destacados
Novita AI ha lanzado DeepSeek R1 Turbo, que ofrece 3 veces el rendimiento y un 60% de descuento por tiempo limitado. Además, esta versión es totalmente compatible con las llamadas a funciones.
Si quieres probar su rendimiento, inicia una prueba gratuita directamente en el Playground de Novita AI.

¿Qué es el llamado a funciones?
El llamado a funciones es una potente funcionalidad que permite a los modelos de lenguaje de gran escala (LLMs) interactuar con sistemas externos y tu código de forma estructurada. Más allá de la generación de texto, los LLMs con llamada a funciones pueden reconocer cuándo se necesita una acción específica, generar los parámetros requeridos y ejecutar tareas del mundo real. Esto hace que los modelos de IA sean más dinámicos y prácticos, permitiendo una integración fluida con herramientas externas y APIs.
¿Cómo funciona el llamado a funciones y qué problemas resuelve?
El proceso sigue un flujo simple y estructurado:
- El usuario envía una solicitud al LLM.
- El LLM analiza la solicitud y determina si es necesario realizar una llamada a una función.
- Si es necesario, el LLM genera una llamada JSON estructurada a la función correspondiente, incluyendo el nombre de la función y los parámetros.
- La aplicación recibe esta llamada y ejecuta la función.
- El resultado se envía de vuelta al LLM.
- El LLM utiliza el resultado para generar una respuesta final al usuario.
Este ciclo puede repetirse para tareas complejas o de varios pasos. Las herramientas (funciones) deben definirse con nombres, descripciones y esquemas JSON que especifiquen sus parámetros. Para mayor validación, se pueden usar modelos Pydantic para reforzar la seguridad de tipos.
El llamado a funciones amplía la capacidad de los LLMs, abordando muchos casos de uso prácticos:
- Recuperación de datos: Convierte consultas en lenguaje natural en llamadas a API para obtener datos en tiempo real (por ejemplo: “¿Cuáles son mis pedidos recientes?”).
- Ejecución de acciones: Realiza tareas específicas (por ejemplo, “Programa una reunión” activa una API de calendario).
- Cálculos: Maneja operaciones aritméticas o análisis (por ejemplo, interés compuesto o análisis estadístico).
- Pipelines de datos: Encadena funciones para flujos de trabajo complejos (por ejemplo, obtener → procesar → almacenar datos).
- Integración UI/UX: Activa actualizaciones de interfaz como marcadores en mapas o gráficos.
- Agentes conversacionales: Permite que los chatbots llamen a APIs para obtener respuestas relevantes (por ejemplo, actualizaciones del clima).
- Comprensión del lenguaje natural: Convierte texto en datos estructurados o extrae información (por ejemplo, análisis de sentimientos, reconocimiento de entidades nombradas).

Cómo usar el llamado a funciones de DeepSeek R1 a través de Novita AI
Novita AI ha lanzado descripciones de soporte de capacidades para cada LLM, que puedes ver directamente en la consola y en la documentación.


1. Inicializar el cliente
Primero, debes inicializar el cliente con tu clave de API de Novita.
from openai import OpenAI
import json
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
# Obtén la clave de API de Novita AI desde: https://novita.ai/settings/key-management.
api_key="<TU_CLAVE_API_Novita AI>",
)
model = "deepseek/deepseek_r1"
- Definir la función que se llamará
A continuación, define la función de Python que el modelo puede llamar. En este ejemplo, es una función para obtener información meteorológica.
# Función de ejemplo para simular la obtención de datos climáticos.
def get_weather(location):
"""Obtiene el clima actual para una ubicación determinada."""
print("Llamando a la función get_weather con ubicación: ", location)
# En una aplicación real, aquí llamarías a una API meteorológica externa.
# Este es un ejemplo simplificado que devuelve datos fijos.
return json.dumps({"location": location, "temperature": "60 grados Fahrenheit"})
2. Construir la solicitud a la API con herramientas y mensaje del usuario
Ahora, crea la solicitud a la API al endpoint de Novita. Esta solicitud incluye el parámetro tools, que define las funciones que el modelo puede usar, y el mensaje del usuario.
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Obtén el clima de una ubicación; el usuario debe proporcionar primero una ubicación",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "La ciudad y el estado, ej. San Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
messages = [
{
"role": "user",
"content": "¿Cuál es el clima en San Francisco?"
}
]
# Enviemos la solicitud e imprimamos la respuesta.
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
)
# Verifica si la respuesta contiene llamadas a herramientas en producción.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())
3. Salida
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
4. Responder con el resultado de la llamada a la función y obtener la respuesta final
El siguiente paso es procesar la llamada a la función, ejecutar la función get_weather y enviar el resultado de vuelta al modelo para generar la respuesta final al usuario.
# Asegúrate de que tool_call esté definido desde el paso anterior
if tool_call:
# Extiende el historial de la conversación con el mensaje de llamada a herramienta del asistente
messages.append(response.choices[0].message)
function_name = tool_call.function.name
if function_name == "get_weather":
function_args = json.loads(tool_call.function.arguments)
# Ejecuta la función y obtén la respuesta
function_response = get_weather(
location=function_args.get("location"))
# Agrega la respuesta de la función a los mensajes
messages.append(
{
"tool_call_id": tool_call.id,
"role": "tool",
"content": function_response,
}
)
# Obtén la respuesta final del modelo, ahora con el resultado de la función
answer_response = client.chat.completions.create(
model=model,
messages=messages,
# Nota: No incluyas el parámetro tools aquí.
)
print(answer_response.choices[0].message)
5. Salida
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
Preguntas frecuentes
¿Qué tipos de funciones se pueden llamar?
Puedes definir prácticamente cualquier función que tu aplicación pueda ejecutar, permitiendo que los LLMs interactúen con bases de datos, APIs y lógica interna.
¿El llamado a funciones realmente ejecuta el código?
No, cuando el LLM decide llamar a una función, solo genera un objeto JSON estructurado que contiene el nombre de la función y los argumentos necesarios.
¿DeepSeek R1 admite llamadas a funciones?
¡Sí! Novita AI ha lanzado DeepSeek R1 Turbo, que ofrece 3 veces el rendimiento y un 20% de descuento por tiempo limitado. Además, esta versión es totalmente compatible con las llamadas a funciones.
Novita AI es la plataforma en la nube integral que impulsa tus ambiciones de IA. API integradas, sin servidor, instancias GPU: las herramientas rentables que necesitas. Elimina la infraestructura, comienza gratis y haz realidad tu visión de IA.
