Ses ve gerçek zamanlı

Realtime WebSocket

WebSocket ile gerçek zamanlı ses ve çok modlu oturumlara bağlanın

GET
/v1/realtime

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ı

modelstringqueryzorunlu

Gerçek zamanlı model ID’si. Genel sözleşmesinde realtime desteği bulunan bir model kullanın.

Authorizationstringheaderzorunlu

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 örneği

Yanıt

HTTP GET
{
  "object": "realtime.endpoint",
  "websocket_url": "/v1/realtime?model={model}",
  "protocol": "tokenlab_realtime_proxy"
}

Önemli alanlar

objectstring
Normal HTTP GET yanıtının nesne türüdür. Değeri her zaman realtime.endpoint olur.
websocket_urlstring
Normal HTTP GET isteğinin döndürdüğü göreli WebSocket bağlantı yoludur: /v1/realtime?model={model}. {model} yerine seçtiğiniz modelin ID’sini yazın.
protocolstring
Normal HTTP GET isteğinin döndürdüğü protokol tanımlayıcısıdır. Değeri her zaman tokenlab_realtime_proxy olur.
typestring
API tarafından dönen event veya message type.
session.idstring
Realtime bağlantısı üzerinden alınan opak kimliktir. Hata ayıklama için destek loglarına ekleyin; REST session URL değildir.

Yetkilendirme

BearerAuth
AuthorizationBearer <token>

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

model?string

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