Compartir a través de


Descripción de las llamadas a funciones de OpenAI

La llamada a funciones es una característica de modelo de OpenAI que permite describir funciones y sus argumentos en indicaciones mediante JSON. En lugar de invocar la propia función, el modelo devuelve una salida JSON que describe qué funciones se deben llamar y los argumentos que se van a usar.

La llamada a funciones simplifica la manera de conectar herramientas externas al modelo de IA. En primer lugar, especifique las funciones de cada herramienta en el modelo. A continuación, el modelo decide a qué funciones se debe llamar, en función de la pregunta de la indicación. El modelo usa los resultados de la llamada a la función para crear una respuesta más precisa y coherente.

Entre los posibles casos de uso para las llamadas a funciones se incluyen los siguientes:

  • Responder a preguntas mediante una llamada a API externas, por ejemplo, enviar correos electrónicos u obtener la previsión meteorológica.
  • Responder a preguntas con información de un almacén de datos interno, por ejemplo, agregar datos de ventas para responder: "¿Cuáles son mis productos más vendidos?".
  • Crear datos estructurados a partir de información de texto, por ejemplo, crear un objeto de información de usuario con detalles del historial de chat.

Llamar a funciones con OpenAI

Los pasos generales para llamar a funciones con un modelo de OpenAI son los siguientes:

  1. Envíe la pregunta del usuario como una solicitud con funciones definidas en los parámetros tools.
  2. El modelo decide a qué funciones se va a llamar, si se llama a alguna. La salida contiene un objeto JSON que enumera las llamadas a funciones y sus argumentos.

    Nota:

    El modelo podría alucinar argumentos adicionales.

  3. Analice la salida y llame a las funciones solicitadas con sus argumentos especificados.
  4. Envíe otra solicitud con los resultados de la función incluidos como un mensaje nuevo.
  5. El modelo responde con más solicitudes de llamada a funciones o una respuesta a la pregunta del usuario.
    • Continúe invocando las llamadas a funciones solicitadas hasta que el modelo responda con una respuesta.

Puede forzar que el modelo solicite una función específica estableciendo el parámetro tool_choice en el nombre de la función. También puede forzar que el modelo responda con un mensaje para el usuario estableciendo el parámetro tool_choice en "none".

Llamar a funciones en paralelo

Algunos modelos admiten llamadas a funciones paralelas, lo que permite al modelo solicitar varias llamadas a funciones en una salida. Los resultados de cada llamada a una función se incluyen juntos en una respuesta al modelo. La llamada a funciones paralelas reduce el número de solicitudes de API y el tiempo necesario para generar una respuesta. Cada resultado de la función se incluye como un mensaje nuevo en la conversación con una coincidencia entre tool_call_id y id de la solicitud de la llamada a funciones.

Modelos admitidos

No todos los modelos de OpenAI están entrenados para admitir llamadas a funciones. Para obtener una lista de los modelos que admiten llamadas a funciones o llamadas a funciones paralelas, consulte OpenAI: modelos compatibles.

Llamada a funciones con el SDK de Semantic Kernel

El SDK de Semantic Kernel admite la descripción de las funciones disponibles para la inteligencia artificial mediante el decorador KernelFunction.

El kernel compila el parámetro tools de una solicitud basada en los decoradores, organiza las llamadas a las funciones solicitadas al código y devuelve los resultados al modelo.

Recuentos de tokens

Las descripciones de funciones se incluyen en el mensaje del sistema de la solicitud a un modelo. Estas descripciones de función se cuentan para el límite de tokens del modelo y se incluyen en el costo de la solicitud.

Si la solicitud supera el límite de tokens del modelo, pruebe las siguientes modificaciones:

  • Reduzca el número de funciones.
  • Acorte las descripciones de la función y los argumentos en el JSON.