Audio y tiempo real
Realtime WebSocket
Conecta sesiones de voz y multimodales en tiempo real por WebSocket
Resumen
Usa este endpoint para sesiones en tiempo real como reconocimiento de voz en streaming, síntesis de voz, traducción de voz o modelos multimodales en tiempo real. Una solicitud GET normal devuelve los metadatos del endpoint, mientras que una solicitud de actualización a WebSocket abre una sesión en tiempo real para el modelo seleccionado.
Superficie admitida
TokenLab expone un endpoint WebSocket en tiempo real en GET /v1/realtime para comprobaciones de metadatos y upgrades WebSocket. Trátalo como un WebSocket subset: reenvía eventos de modelos realtime compatibles y no admite superficies auxiliares REST de OpenAI Realtime como creación de sesiones, client_secrets, API de control de llamadas Calls ni legacy beta session APIs.
En apps web o móviles, mantén las claves API de larga duración en tu servidor. Este endpoint no emite Realtime client secrets de corta duración.
/v1/models, verifica /v1/models/{model} y configura TOKENLAB_REALTIME_MODEL. Los eventos y la configuración de sesión dependen del modelo. El ejemplo JSON siguiente corresponde a un HTTP GET normal, no a un evento de sesión WebSocket.Conexión
ID del modelo en tiempo real. Usa un modelo cuyos detalles indiquen compatibilidad en tiempo real.
Clave API Bearer. Los clientes WebSocket deben enviar Authorization: Bearer sk-your-api-key durante el upgrade.
Solicitud
import WebSocket from 'ws';
const model = process.env.TOKENLAB_REALTIME_MODEL;
const apiKey = process.env.TOKENLAB_API_KEY;
if (!model || !apiKey) {
throw new Error('Set TOKENLAB_REALTIME_MODEL and TOKENLAB_API_KEY');
}
const url = new URL('wss://api.tokenlab.sh/v1/realtime');
url.searchParams.set('model', model);
const socket = new WebSocket(url, {
headers: { Authorization: `Bearer ${apiKey}` }
});
socket.on('open', () => {
console.log('Realtime connection open');
});
socket.on('message', (data) => {
console.log('realtime event', data.toString());
});
socket.on('error', (error) => console.error(error.message));
socket.on('close', (code) => console.log('Realtime connection closed', code));Mensajes
TokenLab transmite los mensajes WebSocket entre tu cliente y el modelo en tiempo real seleccionado. Usa el formato de eventos documentado para ese modelo e incluye model en la cadena de consulta en lugar de en cada evento.
Facturación y cierre
Las sesiones se cobran del saldo de tu clave API: TokenLab reserva una estimación al inicio, luego liquida el uso real al finalizar y reembolsa la diferencia.
Cierra el socket del cliente cuando la sesión haya terminado. Si el servicio cierra la sesión primero, TokenLab envía a tu cliente un evento/código de cierre seguro cuando es posible.
Respuesta
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Campos importantes
realtime.endpoint./v1/realtime?model={model}. Sustituye {model} por el ID del modelo elegido.tokenlab_realtime_proxy.Autorización
BearerAuth Autenticación con API Key. Cree o gestione API keys en Dashboard > API > API Keys.
Ubicación: header
Parámetros de consulta
ID del modelo en tiempo real para enrutar la sesión de WebSocket. Requerido para solicitudes de actualización de WebSocket; opcional para comprobaciones de metadatos HTTP simples.
Respuesta
application/json
application/json
application/json
application/json
application/json
application/json