Audio & realtime
Realtime WebSocket
Hubungkan sesi suara dan multimodal realtime melalui WebSocket
Ikhtisar
Gunakan endpoint ini untuk sesi real-time seperti pengenalan ucapan streaming, sintesis ucapan, terjemahan ucapan, atau model multimodal real-time. Permintaan GET biasa mengembalikan metadata endpoint, sedangkan permintaan upgrade WebSocket membuka sesi real-time untuk model yang dipilih.
Permukaan yang didukung
TokenLab menyediakan endpoint WebSocket realtime di GET /v1/realtime untuk pengecekan metadata dan upgrade WebSocket. Anggap endpoint ini sebagai WebSocket subset: endpoint meneruskan event model realtime yang didukung dan tidak mendukung permukaan helper REST OpenAI Realtime seperti pembuatan sesi, client_secrets, API kontrol panggilan Calls, atau legacy beta session APIs.
Untuk aplikasi browser atau mobile, simpan API key jangka panjang di server Anda. Endpoint ini tidak menerbitkan Realtime client secret berumur pendek.
/v1/models, periksa /v1/models/{model}, lalu tetapkan TOKENLAB_REALTIME_MODEL. Event dan konfigurasi sesi bergantung pada model. Contoh JSON di bawah adalah respons HTTP GET biasa, bukan event sesi WebSocket.Koneksi
ID model realtime. Gunakan model yang detail modelnya mencantumkan dukungan realtime.
API key Bearer. Client WebSocket harus mengirim Authorization: Bearer sk-your-api-key saat upgrade request.
Permintaan
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));Pesan
TokenLab meneruskan pesan WebSocket antara klien Anda dan model real-time yang dipilih. Gunakan format event yang didokumentasikan untuk model tersebut, dan sertakan model di query string alih-alih di setiap event.
Penagihan dan penutupan
Sesi ditagih dari saldo kunci API Anda: TokenLab mencadangkan estimasi di awal, lalu menyelesaikan penggunaan sebenarnya di akhir dan mengembalikan selisihnya.
Tutup socket klien saat sesi selesai. Jika layanan menutup sesi terlebih dahulu, TokenLab mengirimkan event/kode penutupan yang aman ke klien Anda jika memungkinkan.
Respons
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Field penting
realtime.endpoint./v1/realtime?model={model}. Ganti {model} dengan ID model yang dipilih.tokenlab_realtime_proxy.Otorisasi
BearerAuth Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.
Lokasi: header
Parameter query
ID model realtime untuk merutekan sesi WebSocket. Diperlukan untuk permintaan upgrade WebSocket; opsional untuk pemeriksaan metadata HTTP biasa.
Respons
application/json
application/json
application/json
application/json
application/json
application/json