Ses ve gerçek zamanlı
Realtime WebSocket
WebSocket ile gerçek zamanlı ses ve çok modlu oturumlara bağlanın
Genel bakış
Bu uç noktayı; akışlı konuşma tanıma, konuşma sentezi, konuşma çevirisi veya gerçek zamanlı çok modlu modeller gibi gerçek zamanlı oturumlar için kullanın. Normal bir GET isteği uç nokta meta verilerini döndürür, WebSocket yükseltme isteği ise seçilen model için gerçek zamanlı bir oturum açar.
Desteklenen yüzey
TokenLab, metadata kontrolleri ve WebSocket upgrade istekleri için GET /v1/realtime üzerinde gerçek zamanlı bir WebSocket endpoint'i sunar. Bunu bir WebSocket subset olarak düşünün: desteklenen realtime model olaylarını iletir ve oturum oluşturma, client_secrets, Calls çağrı kontrol API'leri veya legacy beta session APIs gibi OpenAI Realtime REST yardımcı yüzeylerini desteklemez.
Tarayıcı veya mobil uygulamalarda uzun ömürlü API anahtarlarını sunucunuzda tutun. Bu endpoint kısa ömürlü Realtime client secret üretmez.
/v1/models listesinden güncel bir realtime modeli seçin, /v1/models/{model} ile doğrulayın ve TOKENLAB_REALTIME_MODEL değerini ayarlayın. Oturum olayları ve yapılandırması modele bağlıdır. Aşağıdaki JSON örneği normal bir HTTP GET yanıtıdır, WebSocket oturum olayı değildir.Bağlantı
Gerçek zamanlı model ID’si. Genel sözleşmesinde realtime desteği bulunan bir model kullanın.
Bearer API anahtarı. WebSocket istemcileri upgrade isteğinde Authorization: Bearer sk-your-api-key göndermelidir.
İstek
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));Mesajlar
TokenLab, WebSocket mesajlarını istemciniz ile seçilen gerçek zamanlı model arasında aktarır. O modelin belgelerinde tanımlanan olay biçimini kullanın ve model değerini her olaya değil, sorgu dizesine ekleyin.
Ücretlendirme ve kapatma
Oturumlar API anahtarınızın bakiyesinden ücretlendirilir: TokenLab başlangıçta bir tahmini tutar ayırır, ardından bitişte gerçek kullanımı hesaplar ve farkı iade eder.
Oturum tamamlandığında istemci soketini kapatın. Hizmet oturumu önce kapatırsa, TokenLab mümkün olduğunda istemcinize güvenli bir kapatma olayı/kodu gönderir.
Yanıt
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Önemli alanlar
realtime.endpoint olur./v1/realtime?model={model}. {model} yerine seçtiğiniz modelin ID’sini yazın.tokenlab_realtime_proxy olur.Yetkilendirme
BearerAuth API Anahtarı kimlik doğrulaması. API anahtarlarını Dashboard > API > API Keys bölümünden oluşturun veya yönetin.
Konum: header
Sorgu parametreleri
WebSocket oturumunu yönlendirmek için gerçek zamanlı model kimliği. WebSocket yükseltme istekleri için gereklidir; düz HTTP meta veri kontrolleri için isteğe bağlıdır.
Yanıt
application/json
application/json
application/json
application/json
application/json
application/json