Áudio e tempo real
Realtime WebSocket
Conecte sessões de voz e multimodais em tempo real via WebSocket
Visão geral
Use este endpoint para sessões em tempo real, como reconhecimento de fala em streaming, síntese de fala, tradução de fala ou modelos multimodais em tempo real. Uma requisição GET comum retorna os metadados do endpoint, enquanto uma requisição de upgrade para WebSocket abre uma sessão em tempo real para o modelo selecionado.
Superfície compatível
TokenLab expõe um endpoint WebSocket em tempo real em GET /v1/realtime para verificações de metadados e upgrades WebSocket. Trate-o como um WebSocket subset: ele encaminha eventos de modelos realtime compatíveis e não oferece superfícies auxiliares REST do OpenAI Realtime, como criação de sessões, client_secrets, APIs de controle de chamadas Calls nem legacy beta session APIs.
Em apps web ou móveis, mantenha chaves API de longa duração no seu servidor. Este endpoint não emite Realtime client secrets de curta duração.
/v1/models, verifique /v1/models/{model} e configure TOKENLAB_REALTIME_MODEL. Os eventos e a configuração da sessão dependem do modelo. O exemplo JSON abaixo é uma resposta HTTP GET comum, não um evento de sessão WebSocket.Conexão
ID do modelo em tempo real. Use um modelo cujos detalhes indiquem suporte a realtime.
Chave API Bearer. Clientes WebSocket devem enviar Authorization: Bearer sk-your-api-key na requisição de upgrade.
Requisição
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));Mensagens
O TokenLab encaminha mensagens WebSocket entre o seu cliente e o modelo em tempo real selecionado. Use o formato de eventos documentado para esse modelo e inclua model na query string, em vez de em cada evento.
Cobrança e encerramento
As sessões são cobradas do saldo da sua chave de API: o TokenLab reserva uma estimativa no início, depois liquida o uso real ao final e reembolsa a diferença.
Feche o socket do cliente quando a sessão for concluída. Se o serviço fechar a sessão primeiro, o TokenLab envia ao seu cliente um evento/código de fechamento seguro quando possível.
Resposta
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}Campos importantes
realtime.endpoint./v1/realtime?model={model}. Substitua {model} pelo ID do modelo escolhido.tokenlab_realtime_proxy.Autorização
BearerAuth Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.
Local: header
Parâmetros de consulta
ID do modelo em tempo real para rotear a sessão WebSocket. Obrigatório para solicitações de upgrade de WebSocket; opcional para verificações de metadados HTTP simples.
Resposta
application/json
application/json
application/json
application/json
application/json
application/json