Audio & Echtzeit
Realtime WebSocket
Echtzeit-Sprach- und multimodale Sitzungen per WebSocket verbinden
Überblick
Verwenden Sie diesen Endpunkt für Echtzeitsitzungen wie Streaming-Spracherkennung, Sprachsynthese, Sprachübersetzung oder multimodale Echtzeitmodelle. Eine normale GET-Anfrage gibt Endpunkt-Metadaten zurück, während eine WebSocket-Upgrade-Anfrage eine Echtzeitsitzung für das ausgewählte Modell öffnet.
Unterstützte Oberfläche
TokenLab stellt unter GET /v1/realtime einen Realtime-WebSocket-Endpunkt für Metadatenchecks und WebSocket-Upgrades bereit. Behandeln Sie ihn als WebSocket subset: Er leitet unterstützte Realtime-Modellereignisse weiter und unterstützt keine OpenAI-Realtime-REST-Hilfsflächen wie Sitzungserstellung, client_secrets, Calls-Call-Control-APIs oder legacy beta session APIs.
Für Browser- oder Mobile-Apps sollten langfristige API-Keys auf Ihrem Server bleiben. Dieser Endpunkt stellt keine kurzlebigen Realtime client secrets aus.
/v1/models, prüfen Sie /v1/models/{model} und setzen Sie dann TOKENLAB_REALTIME_MODEL. Sitzungsereignisse und Konfiguration hängen vom Modell ab. Das JSON-Beispiel unten zeigt eine normale HTTP-GET-Antwort, kein WebSocket-Sitzungsereignis.Verbindung
Realtime-Modell-ID. Wählen Sie ein Modell, dessen unterstützte Operationen realtime unterstützt.
Bearer-API-Key. WebSocket-Clients senden beim Upgrade Authorization: Bearer sk-your-api-key.
Anfrage
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));Nachrichten
TokenLab leitet WebSocket-Nachrichten zwischen Ihrem Client und dem ausgewählten Echtzeitmodell weiter. Verwenden Sie das in der Dokumentation dieses Modells beschriebene Ereignisformat und geben Sie model im Query-String an, nicht in jedem einzelnen Ereignis.
Abrechnung und Schließen
Sitzungen werden über das Guthaben Ihres API-Schlüssels abgerechnet: TokenLab reserviert zu Beginn einen geschätzten Betrag, rechnet am Ende den tatsächlichen Verbrauch ab und erstattet die Differenz.
Schließen Sie den Client-Socket, wenn die Sitzung abgeschlossen ist. Wenn der Dienst die Sitzung zuerst schließt, sendet TokenLab nach Möglichkeit ein sicheres Schließereignis bzw. einen sicheren Schließcode an Ihren Client.
Antwort
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Wichtige Felder
realtime.endpoint./v1/realtime?model={model}. Ersetzen Sie {model} durch die ID des ausgewählten Modells.tokenlab_realtime_proxy.Autorisierung
BearerAuth API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.
Ort: header
Abfrageparameter
Realtime-Modell-ID für das Routing der WebSocket-Sitzung. Erforderlich für WebSocket-Upgrade-Anfragen; optional für einfache HTTP-Metadatenprüfungen.
Antwort
application/json
application/json
application/json
application/json
application/json
application/json