OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Llamada a funciones en la API de OpenAI

¿Qué es la llamada a funciones y cómo funciona en la API de OpenAI?

Actualización: 4 days ago

A fecha de 11 de marzo de 2025, hemos lanzado los componentes básicos de nuestra nueva plataforma Agents. Para obtener más información, consulta la documentación de la API de nuestra API Responses, de las herramientas, incluidas Web Search, File Search y Computer Use, y de nuestro SDK de Agents con Tracing.

La llamada a funciones te permite conectar los modelos de OpenAI con herramientas y sistemas externos. Esto resulta útil para muchas cosas, como dotar de capacidades a asistentes de IA o crear integraciones profundas entre tus aplicaciones y los LLM.

Más información en nuestra guía para desarrolladores sobre llamada a funciones.

En junio de 2024, lanzamos los resultados estructurados. Cuando la activas estableciendo `strict: true` en la definición de la función, Resultados estructurados garantiza que los argumentos generados por el modelo para una llamada a función coincidan exactamente con el esquema JSON que proporcionaste en la definición de la función.

En octubre de 2024, lanzamos la función «Generate Anything», que permite a los desarrolladores describir una función, pegarla directamente o pegar su código y generar un esquema de función válido. Más información sobre «Generate Anything» en este artículo del centro de ayuda

¿Cómo puedo usar la llamada a funciones?

La llamada a funciones es útil para una gran cantidad de casos de uso, como:

  • Permitir que los asistentes obtengan datos:

    • un asistente de IA necesita obtener los datos más recientes del cliente de un sistema interno cuando un usuario pregunta «¿cuáles son mis pedidos recientes?» antes de poder generar la respuesta para el usuario

  • Permitir que los asistentes realicen acciones:

    • un asistente de IA necesita programar reuniones en función de las preferencias del usuario y de la disponibilidad del calendario.

  • Permitir que los asistentes realicen cálculos:

    • un asistente tutor de matemáticas necesita realizar un cálculo matemático.

  • Crear flujos de trabajo completos:

    • una canalización de extracción de datos que obtiene texto sin procesar, luego lo convierte en datos estructurados y lo guarda en una base de datos.

La llamada a funciones es compatible con la API de Responses, que unifica capacidades que antes estaban separadas entre la API para completar chats y la API de Assistants.

¿Cómo puedo usar el modo JSON?

Cuando el modo JSON está activado, se garantiza que la salida del modelo sea un JSON válido, salvo en algunos casos límite que debes detectar y gestionar adecuadamente.

Para solicitar el modo JSON con la API de Responses o la API para completar chats, puedes establecer response_format en { "type": "json_object" } en los modelos compatibles, pero esto solo funciona cuando se cumplen las condiciones previas del modelo, mensaje o herramienta (por ejemplo, que el modelo admita json_object, que la conversación incluya una instrucción para producir JSON y que cualquier restricción de herramienta sea compatible). Para el modo JSON con response_format: {"type": "json_object"}, al menos un mensaje de la solicitud debe contener json de alguna forma, como JSON, json o Json; de lo contrario, la API devuelve un error. Cuando se usa la llamada a funciones en modelos o rutas compatibles, las restricciones JSON se aplican automáticamente a los argumentos de llamada a función; los modelos incompatibles o las combinaciones de herramienta y formato de respuesta pueden rechazarse o no usar muestreo restringido por JSON.

Notas importantes:

  • Al usar el modo JSON, siempre debes indicar al modelo que produzca JSON mediante algún mensaje de la conversación, por ejemplo a través de tu mensaje del sistema. Si no incluyes una instrucción explícita para generar JSON, el modelo puede generar un flujo interminable de espacios en blanco y la solicitud puede seguir ejecutándose hasta alcanzar el límite de tokens. Para ayudar a garantizar que no lo olvides, el modo JSON rechaza las solicitudes a menos que los mensajes o instrucciones de entrada pertinentes contengan la palabra json de alguna forma, sin distinguir mayúsculas de minúsculas.

  • El modo JSON no garantiza que la salida coincida con ningún esquema específico, solo que sea válida y se pueda analizar sin errores. Debes usar Resultados estructurados para garantizar que coincida con tu esquema o, si eso no es posible, debes usar una biblioteca de validación y posiblemente reintentos para garantizar que la salida coincida con el esquema deseado.

  • Tu aplicación debe detectar y gestionar los casos límite que pueden hacer que la salida del modelo no sea un objeto JSON completo (véase más abajo)

¿Te ha resultado útil este artículo?