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: 11 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 a herramientas y sistemas externos. Esto resulta útil para muchas cosas, como dotar de capacidades a los asistentes de IA o crear integraciones profundas entre tus aplicaciones y los LLM.

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

En junio de 2024, lanzamos los resultados estructurados. Cuando los activas estableciendo strict: true en la definición de tu función, los resultados estructurados garantizan 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 «Generar cualquier cosa», que permite a los desarrolladores describir una función, pegarla directamente o pegar tu código y generar un esquema de función válido. Obtén más información sobre «Generar cualquier cosa» en este artículo del centro de ayuda

¿Cómo puedo usar la llamada a funciones?

La llamada a funciones es útil para un gran número de casos de uso, como:

  • Permitir que los asistentes obtengan datos:

  • Permitir que los asistentes realicen acciones:

  • Permitir que los asistentes realicen cálculos:

  • Crear flujos de trabajo enriquecidos:

  • 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 repartidas entre la API para completar chats y la API de asistentes.

¿Cómo puedo usar el modo JSON?

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

Para solicitar el modo JSON con la API para completar chats, establece response_format en { "type": "json_object" } en los modelos compatibles. Con la API de Responses, establece text.format en { "type": "json_object" }; por ejemplo, text: { "format": { "type": "json_object" } }, cuando corresponda. En cualquiera de las API, el modo JSON solo funciona cuando se cumplen los requisitos previos de modelo/mensaje/herramienta (por ejemplo, que el modelo admita json_object, que la conversación incluya instrucciones para producir JSON y que cualquier restricción de herramienta sea compatible). Al menos un mensaje de solicitud o mensaje de entrada en el contexto de entrada efectivo debe contener json sin distinguir entre mayúsculas y minúsculas, como JSON, json o Json; de lo contrario, la API devuelve un error. En Responses, el campo de instrucciones de nivel superior por sí solo no satisface esta validación. Cuando se usa la llamada a funciones en modelos/rutas compatibles, las restricciones JSON se aplican automáticamente a los argumentos de la llamada a función; los modelos incompatibles o las combinaciones de herramienta/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 ejecutarse continuamente hasta alcanzar el límite de tokens. Para ayudarte a no olvidarlo, el modo JSON rechaza las solicitudes salvo que los mensajes de entrada o instrucciones pertinentes contengan la palabra json de alguna forma, sin distinguir entre mayúsculas y minúsculas.

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

  • 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 (consulta más abajo)

¿Te ha resultado útil este artículo?