Llamada a Funciones de OpenAI: Ejemplos para Comenzar
Published on
En el siempre cambiante panorama de la inteligencia artificial (IA), OpenAI ha surgido como un cambio de juego. Su enfoque innovador de llamada a funciones está revolucionando la forma en que los desarrolladores interactúan con los modelos de IA. Este artículo explora los detalles de la llamada a funciones de OpenAI, proporcionando una guía detallada sobre su potencial y cómo aprovecharlo en tus aplicaciones.
Comprendiendo la Llamada a Funciones de OpenAI
Considera una llamada de API enviada a https://api.openai.com/v1/chat/completions
con OPEN_API_KEY definido en el encabezado. El objetivo de esta llamada es generar un archivo JSON que se pueda utilizar para programar una reunión. El documento JSON enviado al modelo se vería algo así:
{
"model": "gpt-3.5-turbo-0613",
"messages": [
{
"role": "user",
"content": "Programa una reunión con John Doe el próximo martes a las 3 PM."
}
],
"functions": [
{
"name": "programar_reunion",
"description": "Por favor, programa una reunión.",
"parameters": {
"type": "object",
"properties": {
"asistente": {
"type": "string",
"description": "Asistente para la reunión"
},
"fecha": {
"type": "string",
"description": "Fecha de la reunión"
},
"hora": {
"type": "string",
"description": "Hora de la reunión"
}
}
}
}
]
}
El modelo genera una salida JSON que se puede utilizar para llamar a la función programar_reunion
desde tu código.
Aplicaciones del Mundo Real de la Llamada a Funciones de OpenAI
Considera un ejemplo de análisis del mercado de valores. La frase del usuario se define como: "¿Cuál es el precio actual de las acciones de Apple?". Los parámetros definidos son: símbolo_del_ticker.
{
"model": "gpt-3.5-turbo-0613",
"messages": [
{
"role": "user",
"content": "¿Cuál es el precio actual de las acciones de Apple?"
}
],
"functions": [
{
"name": "obtener_precio_accion",
"description": "Obtener el precio actual de las acciones",
"parameters": {
"type": "object",
"properties": {
"símbolo_del_ticker": {
"type": "string",
"description": "Símbolo del ticker de la acción"
}
}
}
}
]
}
Luego, el modelo genera una salida JSON que se puede utilizar para llamar a la función obtener_precio_accion
desde tu código.
El Poder de la Llamada a Funciones en OpenAI
La llamada a funciones en OpenAI es un avance significativo en la dirección correcta. Permite que el Modelo de Lenguaje Grande (LLM, por sus siglas en inglés) estructure la salida no solo en lenguaje conversacional natural, sino también en un formato que puede ser consumido por otro sistema, en lugar de un humano. Esta característica estructura la salida para su consumo por parte de las máquinas en forma de una API, en lugar de su consumo por parte de los humanos en forma de lenguaje natural no estructurado.
Hay algunas consideraciones a tener en cuenta. Programáticamente, el chatbot o la interfaz conversacional deberá saber que la salida del LLM debe estar en formato JSON. Por lo tanto, deberá haber alguna clasificación para detectar el tipo de salida. Deberá existir una plantilla predefinida para la entrada al LLM de completado. La plantilla JSON guía al LLM sobre cómo rellenar los valores. Los parámetros que deben rellenarse deben estar bien definidos.
Aplicaciones del Mundo Real de la Llamada a Funciones de OpenAI
La llamada a funciones de OpenAI tiene una amplia gama de aplicaciones. Por ejemplo, se puede utilizar para crear chatbots que respondan preguntas llamando a APIs externas. También se puede convertir el lenguaje natural en datos JSON estructurados o extraer datos estructurados de texto.
Considera un ejemplo de reserva de viaje. La frase del usuario se define como: "Necesito reservar un viaje desde Bonn a Ámsterdam para mi esposa, madre y mis dos hijos y mi hija. También me uniré a ellos. La aerolínea debe volar directo". Los parámetros definidos son: destino, salida, número_de_personas y modo_de_viaje.
{
"model": "gpt-3.5-turbo-0613",
"messages": [
{
"role": "user",
"content": "Necesito reservar un viaje desde Bonn a Ámsterdam para mi esposa, madre y mis dos hijos y mi hija. También me uniré a ellos. La aerolínea debe volar directo."
}
],
"functions": [
{
"name": "reservar_viaje",
"description": "Reservar viaje",
"parameters": {
"type": "object",
"properties": {
"destino": {
"type": "string",
"description": "Tu destino de viaje."
},
"salida": {
"type": "string",
"description": "Desde dónde viajas"
},
"número_de_personas": {
"type": "string",
"description": "Cuántas personas están viajando"
},
"modo_de_viaje": {
"type": "string",
"description": "Qué modo de viaje será."
}
}
}
}
]
}
Luego, el modelo genera una salida JSON que se puede utilizar para llamar
a la función reservar_viaje
desde tu código.
Llamada a Funciones de OpenAI: Un Paso hacia el Futuro
La capacidad de llamada a funciones de OpenAI es un testimonio de los avances rápidos en la tecnología de IA. Permite a los desarrolladores obtener datos estructurados de manera más confiable del modelo. Esta característica es una nueva forma de conectar de manera más confiable las capacidades de GPT con herramientas externas y APIs.
En junio de 2023, OpenAI anunció actualizaciones que incluyen modelos de API más direccionables, capacidades de llamada a funciones, un contexto más largo y precios más bajos. Ahora, los desarrolladores pueden describir funciones a gpt-4-0613 y gpt-3.5-turbo-0613, y el modelo elegirá inteligentemente generar un objeto JSON que contiene los argumentos para llamar a esas funciones.
Esta característica permite a los desarrolladores crear chatbots que respondan preguntas llamando a herramientas externas, convertir consultas en llamadas a funciones, convertir el lenguaje natural en llamadas a APIs o consultas a bases de datos y extraer datos estructurados de texto. Estos casos de uso son posibles gracias a los nuevos parámetros de la API en el punto final /v1/chat/completions
, functions
y function_call
, que permiten a los desarrolladores describir funciones al modelo mediante JSON Schema y, opcionalmente, solicitarle que llame a una función específica.
Un Caso de Uso Concreto de la Llamada a Funciones de OpenAI: Resolver Problemas Matemáticos Complejos
La función de llamada a funciones de OpenAI no es solo un concepto teórico, sino una herramienta práctica que se puede aplicar para resolver problemas complejos. Veamos un ejemplo concreto que demuestra su potencial. Este ejemplo se basa en un hilo de Twitter (opens in a new tab) de Santiago (@svpino).
OpenAI acaba de introducir la llamada a funciones. ¡Esta es una característica increíble! Es la actualización más importante de su API desde que la lanzaron. Aquí tienes un ejemplo para mostrarte lo poderosa que es:
— Santiago (@svpino) 13 de junio de 2023
Considera una pregunta matemática compleja: "¿Cuál es el resultado de sumar 22 más 5 en decimal y agregarle el número hexadecimal A?". Esta pregunta requiere sumar números en diferentes formatos, lo cual puede ser bastante desafiante. Sin embargo, con la función de llamada a funciones de OpenAI, podemos resolverla combinando funciones con indicaciones.
Así es como funciona:
-
Define dos funciones: una que sepa sumar dos números decimales y otra que sepa sumar dos números hexadecimales. Estas funciones se definen como parte de la llamada de completado de chat.
-
Implementa estas dos funciones. Analizan los argumentos y realizan la suma.
-
Llama repet
idamente a la API de OpenAI hasta encontrar una razón de "stop". Cada vez que la API finaliza con una razón de "function_call", llama a la función específica y pasa los resultados de vuelta a la API.
La salida del script será:
- 22 + 5 = 27 (decimal)
- 27 + A = 31 (hexadecimal)
- El resultado de sumar 22 y 5 en decimal, y luego agregar el número hexadecimal A, es 31.
¡Esto demuestra que GPT utilizó ambas funciones para calcular el resultado final! Puedes encontrar el código de este ejemplo aquí (opens in a new tab).
Este ejemplo demuestra el poder de la función de llamada a funciones de OpenAI. Permite a los desarrolladores definir y utilizar funciones personalizadas, lo que permite que el modelo resuelva problemas complejos que requieren varios pasos y diferentes tipos de cálculos.
Otras Actualizaciones Recientes de ChatGPT para el 13 de junio de 2023
Además de la actualización para la llamada a funciones de la API, OpenAI ha anunciado recientemente (opens in a new tab) una serie de actualizaciones innovadoras en sus modelos de API, introduciendo nuevas capacidades y versiones más direccionables de GPT-4 y GPT-3.5-turbo. Estas actualizaciones están destinadas a revolucionar la forma en que interactuamos con los modelos de IA, ofreciendo una funcionalidad mejorada y una relación costo-efectividad.
Impulso de Contexto a GPT-3.5-turbo
Una de las actualizaciones más destacadas es la introducción de una nueva versión de 16k de contexto para GPT-3.5-turbo. Esto significa que el modelo ahora puede considerar hasta 16.000 tokens de historial al generar respuestas, mejorando significativamente su capacidad para manejar conversaciones complejas y largas. Este impulso de contexto permite respuestas más matizadas y contextualmente conscientes, mejorando la experiencia general del usuario. Esto podría suponer un golpe significativo para LangChain, pero aún no se conocen las implicaciones futuras.
Actualización de Precios
Se ha actualizado el precio de GPT-4 y GPT-3.5-turbo. GPT-4 ahora tiene un costo de $0.03/1K tokens para un contexto de 8K y $0.06/1K tokens para un contexto de 32K. GPT-3.5-turbo tiene un precio a
sequible de $0.002/1K tokens. Estos precios competitivos hacen que estos modelos de IA avanzados sean más accesibles para desarrolladores y empresas de todos los tamaños.
Estas actualizaciones marcan un hito significativo en el camino de OpenAI, acercándonos un paso más a un futuro donde los modelos de IA sean más potentes, eficientes y accesibles. A medida que OpenAI continúa innovando y empujando los límites de lo posible con la IA, podemos esperar ver aún más desarrollos emocionantes en un futuro cercano.
Medidas de Seguridad
En línea con su compromiso con la seguridad, OpenAI está trabajando diligentemente para mitigar posibles vulnerabilidades. Recomiendan a los desarrolladores utilizar herramientas confiables e incluir pasos de confirmación del usuario antes de realizar acciones del mundo real. Esto asegura que los modelos de IA se utilicen de manera responsable y que los datos de los usuarios estén protegidos. Esto podría significar que tus indicaciones de ChatGPT Jailbreak favoritas dejarán de funcionar.
Conclusión
Esto concluye nuestra guía completa sobre la función de llamada a funciones de OpenAI. Como hemos visto, esta característica es una herramienta poderosa que se puede utilizar para resolver problemas complejos y crear aplicaciones más interactivas e inteligentes. A medida que OpenAI continúa innovando e introduciendo nuevas características, las posibilidades de lo que podemos lograr con la IA son infinitas.
Preguntas Frecuentes
-
¿Qué es la función de llamada a funciones de OpenAI?
La función de llamada a funciones de OpenAI permite a los desarrolladores describir una función y el modelo genera una salida JSON que contiene los argumentos. Esta función no llama a ninguna función en sí misma, pero genera el JSON que se puede utilizar para llamar a una función desde tu código.
-
¿Cómo funciona la función de llamada a funciones de OpenAI?
Los desarrolladores definen las funciones como parte de la llamada de completado de chat. Luego, el modelo genera una salida JSON que se puede utilizar para llamar a la función específica desde tu código. La API se llama repetidamente hasta encontrar una razón de "stop". Cada vez que la API finaliza con una razón de "function_call", se llama a la función específica y se pasan los resultados de vuelta a la API.
-
¿Cuáles son las aplicaciones de la función de llamada a funciones de OpenAI?
La función de llamada a funciones de OpenAI tiene una amplia gama de aplicaciones. Se puede utilizar para crear chatbots que respondan preguntas llamando a APIs externas, convertir el lenguaje natural en datos JSON estructurados, extraer datos estructurados de texto y resolver problemas complejos que requieren varios pasos y diferentes tipos de cálculos.