Ir al contenido principal
Versión: 2.0.0

Llamada a herramientas externas

La llamada a herramientas es uno de los modos de interacción verdaderamente "nativo LLM" que nunca ha existido antes. Proporciona a los LLM "pensantes" la capacidad de "actuar", tanto en la adquisición de nuevos conocimientos como en la realización de acciones en el mundo real. Es una parte crucial de cualquier aplicación agéntica.

Los LLM de código abierto son cada vez más buenos en el uso de herramientas. Los modelos Llama 3 han hecho posible que los LLM de clase 8b que se ejecutan en tu propio portátil ofrezcan un rendimiento fiable en las llamadas a herramientas.

En este tutorial, le mostraremos un sencillo programa Python que permite a un LLM local ejecutar código y manipular datos en el ordenador local.

Requisitos previos

Necesitará un nodo Gaia preparado para proporcionar servicios LLM a través de una URL pública. Puede

En este tutorial, utilizaremos un nodo Llama3 público con el soporte de llamada a función.

AtributoValor
URL del punto final de la APIhttps://llamatool.us.gaianet.network/v1
Nombre del modelollama
CLAVE APIgaia

Ejecutar el agente de demostración

La aplicación del agente está escrita en Python. Demuestra cómo el LLM podría utilizar herramientas para operar una base de datos SQL. En este caso, inicia y opera una base de datos SQLite en memoria. La base de datos almacena una lista de tareas pendientes.

Descargue el código e instale las dependencias de Python como se indica a continuación.

git clone https://github.com/second-state/llm_todo
cd llm_todo
pip install -r requisitos.txt

Establezca las variables de entorno para el servidor API y el nombre del modelo que acabamos de configurar.

export OPENAI_MODEL_NAME="llama"
export OPENAI_BASE_URL= "https://llamatool.us.gaianet.network/v1"

Ejecute el main.py y abre la interfaz de chat de la línea de comandos.

python main.py

Utilizar el agente

Ahora, puedes pedir al LLM que realice tareas. Por ejemplo, puedes decir

Usuario: 
Ayúdame a escribirlo voy a tener una reunión con el equipo de marketing.

El LLM entiende que necesitas insertar un registro en la base de datos y devuelve una respuesta de llamada a la herramienta en JSON.

Assistant:
<tool_call>
{"id": 0, "name": "create_task", "arguments": {"task": "have a meeting with the marketing team"}}
</tool_call>

La aplicación agente (es decir, main.py) ejecuta la llamada a la herramienta crear_tarea en la respuesta JSON, y devuelve los resultados como rol Herramienta. No es necesario hacer nada aquí, ya que ocurre automáticamente en main.py. La base de datos SQLite se actualiza cuando la aplicación agente ejecuta la llamada a la herramienta.

Tool:
[{'result': 'ok'}]

El LLM recibe el resultado de la ejecución y, a continuación, le responde.

Asistente:
He añadido "tener una reunión con el equipo de marketing" a tu lista de tareas. Hay algo más que quieras hacer?

Puedes continuar la conversación.

Para saber más sobre cómo funciona la llamada a herramientas, consulte este artículo.

Robustez

Uno de los principales retos de las aplicaciones LLM es la frecuente falta de fiabilidad de sus respuestas. Por ejemplo:

Si el LLM genera una llamada a la herramienta incorrecta que no responde a la consulta del usuario,

puede refinar y optimizar las descripciones de cada función de llamada a herramientas. El LLM elige sus herramientas basándose en estas descripciones, por lo que es vital elaborarlas de forma que se ajusten a las consultas típicas de los usuarios.

Si el LLM alucina y produce llamadas a herramientas con nombres de función inexistentes o parámetros incorrectos,

la aplicación del agente debe identificar este problema y solicitar al LLM que cree una nueva respuesta.

La llamada a herramientas es una característica fundamental en el campo en evolución de las aplicaciones LLM agénticas. Estamos impacientes por ver las ideas innovadoras que nos traes.