API OpenAI Chat Completions

La API OpenAI Chat Completions permite interacciones de chat con los Grandes Modelos de Lenguaje (Large Language Models - LLMs) de OpenAI. Puede utilizarse en sistemas que necesiten integrar chatbots u otras interacciones de lenguaje basadas en Inteligencia Artificial y ofrece un alto grado de personalización y control sobre el comportamiento del modelo.

Además, para ayudar a estructurar y monitorizar las peticiones y respuestas, la API cuenta con los siguientes interceptores ya configurados en su flujo:

  • Header: añade o ajusta cabeceras.

  • Log: hay dos instancias de este interceptor configuradas, una en el flujo de petición y otra en el de respuesta. Su función es generar logs para poder visualizar la petición y la respuesta.

  • JSON Schema Validation: valida el contenido presente en el cuerpo de la petición (payload) según el estándar aceptado por la API.

  • Rate Limit AI Tokens: permite controlar el consumo de tokens en aplicaciones que consumen LLMs.

Importación de la API

Para utilizar la API OpenAI Chat Completions, primero debe importarla a su Plataforma siguiendo los pasos que se indican a continuación:

  1. Descargue la documentación de la API.

  2. Descomprime la carpeta OpenAI_Chat_Completions_API.zip.

  3. Importe el archivo OpenAI_Chat_Completions_API.yaml a la Plataforma utilizando la funcionalidad Import/Export.

  4. Despliega la API en un entorno.

Para la autenticación, debe insertar la clave (API key) recibida de OpenAI en el header de la petición.

Referencia de la API

Descripción General

  • Título: OpenAI Chat Completions API

  • Finalidad: Permitir la interacción con modelos de lenguaje para generar respuestas basadas en los mensajes enviados por los usuarios.

  • Base Path: /v1

  • Método Principal: POST en el endpoint /chat/completions

  • Seguridad: Utiliza autenticación vía Bearer Token en la cabecera de la petición.

Funcionalidad principal

El endpoint /chat/completions permite generar una interacción de chat. Ello:

  1. Recibe una lista de mensajes en formato JSON.

  2. Utiliza estos mensajes para interactuar con un modelo de lenguaje elegido por el cliente.

  3. Devuelve las respuestas generadas por el modelo.

Entrada (Payload)

Formato: JSON

Campos principales:

  • model (string, obligatorio): Define qué modelo de lenguaje se utilizará (por ejemplo, gpt-4o).

  • messages (array, obligatorio): Lista de mensajes en la conversación, en la que cada mensaje contiene:

    • role (string): Rol del autor del mensaje, como user, system o assistant.

    • content (string): Contenido textual del mensaje.

  • max_tokens (integer, opcional): Limita el número de tokens generados en la respuesta.

  • temperature (number, opcional): Controla la creatividad de la respuesta (valores más pequeños generan respuestas más deterministas).

  • top_p (number, opcional): Nucleus sampling para limitar la probabilidad acumulada de palabras generadas.

  • n (integer, opcional): Número de respuestas que se deben generar.

  • stop (array, opcional): Define secuencias que terminan la generación de texto.

  • presence_penalty y frequency_penalty (números, opcional): Penalizan la repetición y fomentan la originalidad.

  • logit_bias (objeto, opcional): Ajusta la probabilidad de palabras específicas.

  • user (string, opcional): Identificador único para rastrear la interacción de un usuario.

Respuesta

Códigos de estado:

  • 200 OK: Respuesta generada con éxito. Devuelve:

    • id (string): Identificador único de la respuesta.

    • choices (array): Lista de respuestas generadas, cada una con:

      • message: Mensaje generado por el modelo, con role y content.

      • finish_reason: Razón para finalizar la generación (por ejemplo, stop).

    • usage: Métricas de uso de tokens (prompt, completion, total).

  • 400 Bad Request: Petición no válida.

  • 500 Internal Server Error: Error interno del servidor o del servicio.

Configuración extra

  • Tiempo de espera (timeout): 60 segundos.

  • Ciclo de vida de la API: Disponible (estado AVAILABLE).

  • Autenticación: Requiere un token en la cabecera Authorization.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]