Saltar a contenido

Plan Maestro - Llamada a Herramientas

La llamada a herramientas (Tool Calling), también conocida como llamada a funciones (Function Calling), se refiere a la capacidad de los modelos avanzados para determinar, según el contexto de la conversación, si es necesario invocar herramientas o funciones externas con el fin de obtener información o realizar acciones. El modelo devolverá el nombre de la función a invocar y los parámetros correspondientes, permitiendo que los desarrolladores ejecuten la llamada real y luego devuelvan el resultado al modelo para continuar con el diálogo.

AIChatPlus soporta la función Tool Call en las siguientes plataformas:

  • OpenAI
  • Claude
  • Gemini
  • Ollama
  • Servidor Cllama (servidor llama.cpp)

Conceptos clave

Definición de Herramienta

La definición de Tool incluye los siguientes campos clave:

  • Tipo: Tipo de herramienta, actualmente solo se admite Function.
  • Nombre: Nombre de la función, debe estar compuesto por letras de la a-z, A-Z, números del 0-9, guiones bajos o medios, con una longitud máxima de 64.
  • Descripción: Descripción de la función, el modelo utilizará esta descripción para determinar cuándo llamar a la función.
  • Propiedades: Lista de parámetros de la función, donde cada parámetro contiene atributos como Nombre, Descripción, Tipo, Obligatorio, etc.

Proceso de Llamada a Herramienta

El proceso completo de Tool Call es el siguiente:

  1. Enviar solicitud: Enviar una solicitud de chat a el modelo que incluya la definición de Herramientas
  2. Evaluación del modelo: El modelo determina si es necesario invocar una herramienta basándose en el contenido del diálogo.
  3. Devolución de Tool Calls: Si es necesario llamarlos, el modelo devuelve el nombre de la función y los parámetros a utilizar
  4. Ejecución de funciones: Los desarrolladores realizan la llamada real a la función basándose en la información devuelta.
  5. Devolver resultado: Enviar el resultado de la ejecución de la función como un nuevo mensaje al modelo.
  6. Continuar el diálogo: El modelo genera la respuesta final basándose en el resultado de la función.

Ejemplo de llamada a herramienta de OpenAI

A continuación, utilizaremos OpenAI como ejemplo para demostrar cómo usar la función Tool Call.

1. Definición de Tool

Primero, crea la definición de la Herramienta. En este ejemplo, definimos una función get_delivery_date para obtener el tiempo de entrega de un paquete de mensajería.

guide bludprint

2. Definir parámetros de Tool

Agregar Properties (parámetros) al Tool. En este ejemplo, se añade un parámetro order_id, de tipo string, configurado como obligatorio.

guide bludprint

3. Configuración de Opciones

Crear el nodo Opciones de Solicitud de Chat OpenAI, configurar la clave API y el Modelo, y conectar el arreglo de Herramientas a las Opciones.

guide bludprint

4. Crear Mensajes

Crear mensajes de usuario para consultar sobre paquetes de mensajería.

guide bludprint

5. Enviar solicitud y manejar Tool Call

Crear el nodo Send OpenAI Chat Request In World y vincular el evento On Message Finished. En el callback del evento, obtener el arreglo ToolCalls desde el Payload.

Cuando el modelo decide invocar una herramienta, el array ToolCalls no está vacío. Recorre el array para obtener la información de cada Tool Call:

  • Id: Identificador único de Tool Call
  • FunctionName: Nombre de la función a llamar
  • FunctionArguments: Argumentos de función (formato de cadena JSON)

guide bludprint

6. Ejecutar la función y devolver el resultado

Ejecuta la lógica de la función correspondiente según FunctionName (en este caso, simulando obtener el tiempo de entrega de un paquete postal) y luego devuelve el resultado como un mensaje de tipo ToolCallResult al modelo.

Para crear un nuevo Mensaje, es necesario configurar:

  • Rol: Establecido como Herramienta
  • Contenido: Resultado de la ejecución de la función
  • ToolCallResults: Agregar un FAIChatPlus_ChatRequestToolCallResult, configurar el Id (utilizar el Tool Call Id anterior), FunctionName y FunctionResult.

guide bludprint

7. Continuar la conversación

Agrega el mensaje que contiene el resultado de ToolCallResult al historial de mensajes y envía la solicitud nuevamente. El modelo generará una respuesta final en lenguaje natural basada en los resultados devueltos por la función.

guide bludprint

9. Plan maestro completo

El esquema completo de Tool Call luce así:

10. Resultados de la ejecución

Ejecuta el esquema y verás que el modelo devuelve una respuesta en lenguaje natural con la información del clima.

Uso avanzado

Herramientas múltiples

Puedes definir múltiples Tools al mismo tiempo, y el modelo seleccionará cuál o cuáles funciones llamar según sea necesario.

guide bludprint

Tipos de parámetros complejos

El parámetro Tool admite varios tipos, y se pueden agregar definiciones de parámetros más complejas, como tipos de enumeración, a través de los campos ExtraJsonString o ExtraJsonObject:

{"enum": ["Beijing", "HongKong"]}

guide bludprint

Otras plataformas

El uso de Tool Call en Claude, Gemini, Ollama y CllamaServer es similar al de OpenAI, solo hay que reemplazar los nodos correspondientes de Request y Options. Las estructuras de datos principales en cada plataforma (como FAIChatPlus_ChatRequestTool, FAIChatPlus_ChatResponseToolCall, etc.) son universales.

Original: https://wiki.disenone.site/es

This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.

Este post está traducido usando ChatGPT. Por favor, envía tus comentarios en retroalimentaciónSeñalar cualquier omisión en el indicado.