UStackUStack
OpenAI Realtime API favicon

OpenAI Realtime API

La API en Tiempo Real de OpenAI facilita la comunicación multimodal de baja latencia para construir aplicaciones como agentes de voz, soportando voz-a-voz, entradas de audio/imagen/texto, y salidas de audio/texto.

OpenAI Realtime API

¿Qué es OpenAI Realtime API?

¿Qué es OpenAI Realtime API?

La API en Tiempo Real de OpenAI es una interfaz especializada diseñada para permitir una comunicación de latencia extremadamente baja con los modelos de OpenAI. Su principal fortaleza radica en el manejo de flujos de datos continuos y bidireccionales, lo que la hace ideal para aplicaciones interactivas y sensibles al tiempo. Esta API soporta de forma nativa interacciones multimodales complejas, permitiendo a los desarrolladores integrar funcionalidad de voz-a-voz, procesar entradas combinadas de audio, imágenes y texto, y generar salidas de audio o texto casi en tiempo real.

Esta capacidad abre la puerta a la construcción de aplicaciones sofisticadas y receptivas, como agentes de voz avanzados directamente en el navegador o la integración de servicios de transcripción de audio en tiempo real. Al centrarse en la velocidad y el flujo continuo de datos, la API en Tiempo Real va más allá de los modelos tradicionales de solicitud/respuesta, ofreciendo una base para experiencias de IA verdaderamente conversacionales e inmersivas.

Características Clave

  • Comunicación de Baja Latencia: Optimizada para un retraso mínimo, crucial para interacciones de voz con sonido natural y bucles de retroalimentación inmediatos.
  • Soporte Multimodal: Acepta entradas que incluyen audio, imágenes y texto, y genera salidas de audio y texto.
  • Soporte Nativo de Voz-a-Voz: Diseñada específicamente para construir agentes de voz fluidos donde la entrada de audio se convierte inmediatamente en salida de audio.
  • Métodos de Conexión Flexibles: Soporta tres interfaces principales para adaptarse a diferentes entornos de implementación:
    • WebRTC: Ideal para interacciones directas del lado del cliente dentro de navegadores web.
    • WebSocket: Más adecuada para aplicaciones del lado del servidor que requieren conexiones consistentes y de baja latencia.
    • SIP: Diseñada para la integración con sistemas de telefonía VoIP tradicionales.
  • Transcripción de Audio en Tiempo Real: Proporciona la capacidad de transcribir flujos de audio a medida que llegan a través de una conexión WebSocket.
  • Controles del Lado del Servidor: Permite a los desarrolladores gestionar el ciclo de vida de la sesión, implementar barreras de seguridad y llamar a herramientas externas desde el servidor.
  • Autenticación Simplificada: Utiliza claves de API efímeras generadas a través de un endpoint REST dedicado (/v1/realtime/client_secrets) para una inicialización segura del lado del cliente.

Cómo Usar OpenAI Realtime API

Comenzar con la API en Tiempo Real a menudo implica aprovechar el Agents SDK para TypeScript, que proporciona el camino más rápido para construir agentes de voz basados en navegador. El flujo de trabajo general implica establecer una conexión, gestionar la sesión y luego interactuar con el modelo.

  1. Inicialización: Defina los parámetros de su agente (como nombre e instrucciones) usando el SDK, o prepárese para una conexión directa.
  2. Configuración de la Conexión: Elija su método de conexión (WebRTC para navegador, WebSocket para servidor). Para WebRTC, normalmente utilizará la clave efímera obtenida del endpoint REST para inicializar una RealtimeSession.
  3. Conexión de Sesión: Llame a session.connect() para vincular automáticamente el micrófono y la salida de audio (para agentes de voz) o establecer el flujo de datos.
  4. Interacción: Una vez conectado, utilice las guías proporcionadas para solicitar, gestionar eventos de conversación o implementar lógica del lado del servidor (como la llamada a herramientas) para dirigir el comportamiento del modelo.

Para la integración directa fuera del Agents SDK, los desarrolladores deben consultar las guías específicas para conexiones WebRTC, WebSocket o SIP para manejar la inicialización de la sesión y el intercambio de datos (por ejemplo, la negociación SDP para WebRTC).

Casos de Uso

  1. Asistentes de Voz Interactivos: Construcción de agentes conversacionales sofisticados con sonido natural accesibles directamente a través de navegadores web o aplicaciones móviles, ofreciendo respuestas habladas inmediatas sin un retraso perceptible.
  2. Bots de Soporte al Cliente en Tiempo Real: Despliegue de agentes de IA que pueden manejar llamadas de voz en vivo a través de la integración SIP, proporcionando triaje instantáneo, recuperación de información o procesamiento de transacciones complejas por teléfono.
  3. Procesamiento de Datos Multimodales: Creación de aplicaciones que analizan transmisiones de video en vivo (usando entrada de imagen) combinadas con comandos de voz (entrada de audio) para realizar tareas complejas, como guiar a un usuario a través de un proceso de reparación física.
  4. Transcripción y Resumen de Reuniones en Vivo: Utilización de la conexión WebSocket para la transcripción de audio en tiempo real durante las reuniones, permitiendo la indexación inmediata, el marcado de palabras clave o la generación de resúmenes sobre la marcha.
  5. PNJs de Juegos con Baja Latencia: Integración de personajes de IA en entornos interactivos en tiempo real donde los comandos de voz del jugador deben resultar en respuestas habladas inmediatas y contextualmente conscientes del personaje del juego.

Preguntas Frecuentes (FAQ)

P: ¿Cuál es la diferencia principal entre la API en Tiempo Real y las llamadas estándar a la API REST? R: La API REST estándar está optimizada para operaciones discretas de solicitud/respuesta. La API en Tiempo Real está construida para comunicación continua y bidireccional en streaming, priorizando la latencia extremadamente baja necesaria para la voz interactiva y el intercambio de datos en tiempo real.

P: ¿Puedo usar la API en Tiempo Real directamente en una aplicación móvil? R: Sí. Aunque el Agents SDK se centra en el uso en navegadores a través de WebRTC, la API en Tiempo Real subyacente soporta conexiones WebSocket, las cuales pueden implementarse en entornos móviles nativos después de obtener de forma segura los secretos de cliente efímeros necesarios de su servidor backend.

P: ¿Cómo manejo la autenticación para las conexiones WebRTC del lado del cliente? R: Primero debe llamar al endpoint REST del lado del servidor (POST /v1/realtime/client_secrets) usando su clave de API principal. Esto devuelve un token efímero (ek_...) que luego es utilizado de forma segura por el cliente para inicializar la sesión WebRTC o WebSocket.

P: ¿Qué pasó con la cabecera OpenAI-Beta: realtime=v1? R: Esta cabecera solo es necesaria si usted está reteniendo intencionalmente el comportamiento de la interfaz beta anterior de Tiempo Real. Para las nuevas integraciones que utilizan la interfaz de Disponibilidad General (GA), esta cabecera debe eliminarse de las solicitudes de la API REST y las conexiones WebSocket.

P: ¿Qué método de conexión ofrece la menor latencia para una aplicación web? R: Para interacciones directas del navegador, WebRTC es generalmente el método de conexión recomendado y más optimizado proporcionado por la API en Tiempo Real para lograr la menor latencia posible entre el cliente y el modelo.