Audio & temps réel
Realtime WebSocket
Connectez des sessions vocales et multimodales en temps réel via WebSocket
Aperçu
Utilisez ce point de terminaison pour les sessions en temps réel telles que la reconnaissance vocale en streaming, la synthèse vocale, la traduction vocale ou les modèles multimodaux en temps réel. Une requête GET standard renvoie les métadonnées du point de terminaison, tandis qu'une requête de mise à niveau WebSocket ouvre une session en temps réel pour le modèle sélectionné.
Surface prise en charge
TokenLab expose un endpoint WebSocket temps réel sur GET /v1/realtime pour les contrôles de métadonnées et les upgrades WebSocket. Considérez-le comme un WebSocket subset : il relaie les événements des modèles realtime pris en charge et ne prend pas en charge les surfaces d'aide REST OpenAI Realtime comme la création de session, client_secrets, les API de contrôle d'appel Calls ou les legacy beta session APIs.
Pour les apps navigateur ou mobile, conservez les clés API longue durée côté serveur. Cet endpoint n’émet pas de Realtime client secrets de courte durée.
/v1/models, vérifiez /v1/models/{model}, puis définissez TOKENLAB_REALTIME_MODEL. Les événements et la configuration de session dépendent du modèle. L’exemple JSON ci-dessous est une réponse HTTP GET classique, pas un événement de session WebSocket.Connexion
ID du modèle temps réel. Utilisez un modèle dont les détails indiquent la prise en charge realtime.
Clé API Bearer. Les clients WebSocket doivent envoyer Authorization: Bearer sk-your-api-key pendant la requête d’upgrade.
Requête
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));Messages
TokenLab relaie les messages WebSocket entre votre client et le modèle en temps réel sélectionné. Utilisez le format d'événement décrit dans la documentation de ce modèle et incluez model dans la chaîne de requête plutôt que dans chaque événement.
Facturation et fermeture
Les sessions sont facturées sur le solde de votre clé API : TokenLab réserve une estimation au début, puis règle l'utilisation réelle à la fin et rembourse la différence.
Fermez le socket client lorsque la session est terminée. Si le service ferme la session en premier, TokenLab transmet, dans la mesure du possible, un événement/code de fermeture sécurisé à votre client.
Réponse
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Champs importants
realtime.endpoint./v1/realtime?model={model}. Remplacez {model} par l’identifiant du modèle choisi.tokenlab_realtime_proxy.Autorisation
BearerAuth Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.
Emplacement: header
Paramètres de requête
ID du modèle temps réel pour router la session WebSocket. Requis pour les requêtes de mise à niveau WebSocket ; optionnel pour les vérifications de métadonnées HTTP simples.
Réponse
application/json
application/json
application/json
application/json
application/json
application/json