Aspectos destacados
Sí o no: El modelo Llama 3.2 3B es un modelo de lenguaje ligero pero capaz que admite llamado a funciones.
¿Qué puede hacer? El llamado a funciones permite que el modelo interactúe con herramientas externas y API, ampliando su funcionalidad más allá de la generación básica de texto.
¿Cómo implementarlo? Instala las API a través de Novita AI “LLM Playground”, luego impleméntalas con el framework Langchain.
En el campo actual de la inteligencia artificial, muchas personas discuten activamente si el modelo Llama 3.2 3B puede implementar capacidades de llamado a funciones. Numerosos usuarios y desarrolladores están compartiendo sus experiencias con el llamado a funciones de Llama 3.2 3B en foros y redes sociales. Algunos usuarios informan que obtienen buenos resultados con una tasa de éxito de alrededor del 80% al usar el modelo para llamadas a herramientas. Sin embargo, también hay informes de usuarios que indican que, en ciertos casos, el modelo puede malinterpretar el contexto, lo que lleva a llamadas a funciones inexactas o fallidas. Hoy profundizaremos en la función de llamado a funciones de Llama 3.2.
¿Es compatible Llama 3.2 con el llamado a funciones?
¡Sí!
Los modelos Llama 3.2, incluida la variante 3B, admiten el llamado a funciones. Esta capacidad permite que el modelo detecte cuándo necesita llamar a una función y luego genere JSON con argumentos para llamar a esa función. Esta funcionalidad es una característica clave de la serie Llama 3.2, cuyos modelos han sido ajustados para ello. El modelo Llama 3.2 3B es particularmente adecuado para aplicaciones en dispositivos debido a su diseño ligero, al tiempo que sigue admitiendo funciones potentes como el llamado a funciones.

¿Qué es el llamado a funciones?
El llamado a funciones es una metodología que permite a los LLM interactuar con sistemas externos, API y herramientas. Al equipar a un LLM con un conjunto de funciones o herramientas, junto con detalles sobre cómo usarlas, el modelo puede elegir y ejecutar de manera inteligente la función adecuada para realizar una tarea específica. Esta capacidad extiende la funcionalidad de los LLM más allá de la generación básica de texto, permitiéndoles realizar acciones, controlar dispositivos y acceder a bases de datos.
Modelos compatibles con el llamado a funciones
Muchos LLM y plataformas ahora admiten el llamado a funciones. Puedes instalar la API a través de la página “LLM Playground” de Novita AI e implementar el llamado a funciones mediante langchain.
- Llama 3.3: La versión de 70 mil millones de parámetros ha mostrado un rendimiento sólido en pruebas de llamado a funciones al identificar con éxito cuándo y qué funciones llamar según las solicitudes del usuario.
- Mistral: Modelos como Mistral-Large-2 demuestran éxito en el llamado a funciones dentro de entornos como watsonx.ai.
- Gemini: Los modelos Gemini de Google también admiten el llamado a funciones con varios ejemplos de uso disponibles.
Si deseas obtener más información, ¡puedes consultar este sitio web!

fuente: Berkeley Function-Calling Leaderboard
¿Cómo funciona el llamado a funciones?
El llamado a funciones generalmente implica un proceso de dos pasos:
- Mapear la solicitud del usuario a la función y los parámetros de entrada correctos. El LLM evalúa si alguna de las herramientas disponibles es relevante para la consulta del usuario.
- Procesar la salida de la función para generar una respuesta final coherente. Si corresponde, el LLM construye una solicitud formateada para llamar a la herramienta.
- Luego, la salida de la herramienta se analiza e integra en la respuesta final.
Aplicaciones prácticas del llamado a funciones
El llamado a funciones con el modelo Llama 3.2 3B tiene numerosas aplicaciones en el mundo real:
- Chatbots de atención al cliente: Automatizar respuestas que requieren cálculos o búsqueda de información.
- Procesamiento de datos: Interactuar con sistemas backend para obtener o actualizar datos.
- Asistentes virtuales: Mejorar las interacciones del usuario al permitir que el asistente realice operaciones como programar citas o hacer cálculos.
- Interacciones con API: Convertir lenguaje natural en llamadas a API.
- Consultas a bases de datos: Crear aplicaciones que traduzcan el lenguaje natural en consultas válidas a bases de datos.
- Control de hogar inteligente: Controlar dispositivos del hogar inteligente configurando la temperatura o activando luces mediante comandos en lenguaje natural.
- Motores de recuperación de conocimiento conversacional: Interactuar con bases de conocimiento.
- Plataformas de comercio electrónico: Proporcionar sugerencias de productos en tiempo real basadas en bases de datos de inventario, rastrear pedidos o gestionar tickets de atención al cliente.
- Atención médica: Programar citas o recuperar información de pacientes.
- Viajes: Obtener información de vuelos, reservar alojamiento o gestionar reservas.
- Finanzas: Proporcionar saldos de cuenta actualizados y procesar transacciones.
Cómo usar el llamado a funciones de Llama 3.2 3B a través de Novita AI
Paso 1: Obtener una clave de API
Ingresa a la página “Keys” y copia la clave de API como se indica en la imagen.

Al registrarte, Novita AI proporciona un crédito de $0.5 para que empieces.
Si el crédito gratuito se agota, puedes pagar para seguir usándolo.
Paso 2: Usar Langchain para implementar el llamado a funciones
Crearemos una aplicación matemática simple que pueda realizar operaciones de suma y multiplicación.
💡 Aunque esta guía utiliza LangChain por comodidad, implementar el llamado a funciones no requiere ningún framework específico. La clave está en diseñar los prompts adecuados para hacer que el modelo entienda e invoque funciones correctamente. LangChain se utiliza aquí simplemente para agilizar la implementación.
Requisitos previos
Primero, instala los paquetes necesarios:
pip install langchain-openai python-dotenv
Configuración del entorno
Crea un archivo .env en la raíz de tu proyecto y agrega tu clave de API de Novita AI:
NOVITA_API_KEY=tu_clave_api_aqui
Pasos de implementación
1. Definir las herramientas
Primero, creemos dos herramientas matemáticas simples usando el decorador @tool de LangChain:
from langchain_core.tools import tool
@tool
def multiply(x: float, y: float) -> float:
"""Multiplica dos números."""
return x * y
@tool
def add(x: int, y: int) -> int:
"""Suma dos números."""
return x + y
tools = [multiply, add]
2. Crear la función de ejecución de herramientas
A continuación, implementa una función para ejecutar las herramientas:
from typing import Any, Dict, Optional, TypedDict
from langchain_core.runnables import RunnableConfig
class ToolCallRequest(TypedDict):
name: str
arguments: Dict[str, Any]
def invoke_tool(
tool_call_request: ToolCallRequest,
config: Optional[RunnableConfig] = None
):
"""Ejecuta la herramienta especificada con los argumentos dados."""
tool_name_to_tool = {tool.name: tool for tool in tools}
name = tool_call_request["name"]
requested_tool = tool_name_to_tool[name]
return requested_tool.invoke(tool_call_request["arguments"], config=config)
3. Configurar el pipeline de LangChain
Crea una cadena que use el LLM de Novita AI para seleccionar y preparar las llamadas a herramientas:
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import render_text_description
def create_chain():
"""Crea una cadena que usa el modelo LLM especificado para seleccionar y preparar llamadas a herramientas."""
model = ChatOpenAI(
model="meta-llama/llama-3.3-70b-instruct",
api_key=os.getenv("NOVITA_API_KEY"),
base_url="https://api.novita.ai/v3/openai",
)
rendered_tools = render_text_description(tools)
system_prompt = f"""\
Eres un asistente que tiene acceso al siguiente conjunto de herramientas.
Aquí están los nombres y descripciones de cada herramienta:
{rendered_tools}
Dada la entrada del usuario, devuelve el nombre y la entrada de la herramienta a usar.
Devuelve tu respuesta como un blob JSON con las claves 'name' y 'arguments'.
Los `arguments` deben ser un diccionario, con las claves correspondientes
a los nombres de los argumentos y los valores correspondientes a los valores solicitados.
"""
prompt = ChatPromptTemplate.from_messages(
[("system", system_prompt), ("user", "{input}")]
)
return prompt | model | JsonOutputParser()
4. Crear la función principal de procesamiento
Implementa la función principal que procesa las consultas matemáticas:
def process_math_query(query: str):
"""Procesa una consulta matemática usando un LLM para seleccionar la herramienta adecuada y ejecutarla."""
chain = create_chain()
message = chain.invoke({"input": query})
result = invoke_tool(message, config=None)
return message, result
5. Ejemplo de uso
Así es como se utiliza la implementación:
if __name__ == "__main__":
message, result = process_math_query(
"meta-llama/llama-3.2-3b-instruct",
"¿cuánto es 3 más 1132?"
)
print(result) # Salida: 1135
Problemas comunes y solución de problemas
Los problemas comunes que se encuentran durante el llamado a funciones incluyen:
- Invocación incorrecta de funciones: El modelo puede malinterpretar el contexto, lo que lleva a invocar la función incorrecta.
- Alta latencia: Pueden ocurrir respuestas lentas, lo que afecta la experiencia del usuario.
- Funciones no reconocidas: El modelo puede no reconocer nombres de funciones o parámetros válidos, lo que provoca errores en tiempo de ejecución.
- Alucinaciones del modelo: El modelo puede generar salidas o parámetros incorrectos, lo que puede llevar a un comportamiento inesperado.
- Paso inconsistente de parámetros: Los parámetros pueden pasarse en formatos inesperados, lo que provoca errores durante la ejecución de la función.
- Problemas de red: Las dependencias de API externas pueden introducir latencia o fallos si la conectividad de red es inestable.
- Fallos de análisis: La salida del modelo puede no ajustarse a los formatos esperados (por ejemplo, JSON no válido), lo que provoca errores de análisis.
Mejores prácticas para optimizar el llamado a funciones
Para optimizar el llamado a funciones:
- Para abordar la invocación incorrecta de funciones: Ajusta el modelo con prompts específicos relacionados con el llamado a funciones para mejorar la comprensión del contexto y minimizar errores en la invocación.
- Para mitigar la alta latencia: Optimiza los tiempos de respuesta reduciendo el número de tokens en los prompts o implementando llamadas a funciones asíncronas para mejorar el rendimiento.
- Para resolver funciones no reconocidas: Valida los nombres y parámetros de las funciones antes de invocarlas para asegurarte de que se reconozcan correctamente, evitando así errores en tiempo de ejecución.
- Para gestionar las alucinaciones del modelo: Implementa estrategias cuidadosas de manejo de errores para lidiar con salidas o parámetros incorrectos generados por el modelo, asegurando mecanismos de respaldo para resultados inesperados.
- Para garantizar un paso consistente de parámetros: Establece pautas claras para los formatos de parámetros y aplica validaciones estrictas para lograr consistencia en cómo se pasan los parámetros durante la ejecución de la función.
- Para manejar problemas de red: Desarrolla una estrategia sólida de manejo de errores para problemas relacionados con la red al interactuar con API externas, incluidos mecanismos de reintento para fallos transitorios.
- Para prevenir fallos de análisis: Utiliza técnicas de validación de salida para garantizar que las salidas del modelo se ajusten a los formatos esperados (por ejemplo, JSON válido), e implementa manejo de errores para errores de análisis para mantener la estabilidad del sistema.
En resumen, la capacidad de llamado a funciones representa un avance significativo en la funcionalidad de los modelos de lenguaje grandes, permitiéndoles interactuar de manera efectiva con herramientas y API externas. Si bien existen desafíos comunes como la invocación incorrecta de funciones, alta latencia, funciones no reconocidas y alucinaciones del modelo, la implementación de mejores prácticas y un manejo robusto de errores puede mejorar su confiabilidad y rendimiento. A medida que los desarrolladores continúan explorando y refinando esta característica, las aplicaciones potenciales en diversos dominios probablemente se expandirán, convirtiendo a Llama 3.2 en una herramienta versátil para tareas del mundo real.
Preguntas frecuentes
¿Por qué es crucial el llamado a funciones para los agentes de IA?
Permite que los agentes de IA realicen tareas de forma autónoma que requieren datos o acciones externas, mejorando la eficiencia en entornos dinámicos.
¿Cómo mejora el llamado a funciones el rendimiento de los LLM?
Mejora la precisión al permitir la recuperación de datos en tiempo real, la ejecución de tareas y la toma de decisiones informadas a través de herramientas externas.
Novita AI es la plataforma integral en la nube que impulsa tus ambiciones de IA. API integradas, serverless, instancias GPU: las herramientas rentables que necesitas. Elimina la infraestructura, comienza gratis y haz realidad tu visión de IA.
