TokenLab

Âm thanh & thời gian thực

Realtime WebSocket

Kết nối phiên giọng nói và đa phương thức thời gian thực qua WebSocket

GET
/v1/realtime

Tổng quan

Dùng endpoint này cho các phiên thời gian thực như nhận dạng giọng nói streaming, tổng hợp giọng nói, dịch giọng nói hoặc các mô hình đa phương thức thời gian thực. Yêu cầu GET thông thường trả về metadata của endpoint, còn yêu cầu nâng cấp WebSocket sẽ mở một phiên thời gian thực cho mô hình đã chọn.

Phạm vi hỗ trợ

TokenLab cung cấp endpoint WebSocket thời gian thực tại GET /v1/realtime để kiểm tra metadata và upgrade WebSocket. Hãy xem đây là một WebSocket subset: endpoint chỉ chuyển tiếp sự kiện của các mô hình realtime được hỗ trợ và không hỗ trợ các bề mặt REST helper của OpenAI Realtime như tạo phiên, client_secrets, API điều khiển cuộc gọi Calls hoặc legacy beta session APIs.

Với ứng dụng trình duyệt hoặc di động, hãy giữ API key dài hạn trên server của bạn. Endpoint này không phát hành Realtime client secret ngắn hạn.

Chọn mô hình realtime hiện tại từ /v1/models, kiểm tra /v1/models/{model} rồi đặt TOKENLAB_REALTIME_MODEL. Sự kiện và cấu hình phiên tùy thuộc mô hình. Ví dụ JSON dưới đây là phản hồi HTTP GET thông thường, không phải sự kiện phiên WebSocket.

Kết nối

modelstringquerybắt buộc

ID mô hình realtime. Chọn mô hình có chi tiết model liệt kê hỗ trợ realtime.

Authorizationstringheaderbắt buộc

API key Bearer. Client WebSocket nên gửi Authorization: Bearer sk-your-api-key trong yêu cầu upgrade.

Yêu cầu

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));

Tin nhắn

TokenLab chuyển tiếp các tin nhắn WebSocket giữa client của bạn và mô hình thời gian thực đã chọn. Hãy dùng định dạng sự kiện được ghi trong tài liệu của mô hình đó và đưa model vào query string thay vì vào từng sự kiện.

Tính phí và đóng kết nối

Phiên được tính phí từ số dư khóa API của bạn: TokenLab giữ trước một khoản ước tính khi bắt đầu, sau đó quyết toán theo mức sử dụng thực tế khi kết thúc và hoàn lại phần chênh lệch.

Đóng socket client khi phiên hoàn tất. Nếu dịch vụ đóng phiên trước, TokenLab sẽ gửi một sự kiện/mã đóng an toàn đến client của bạn khi có thể.

Ví dụ phản hồi

Phản hồi

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

Trường quan trọng

objectstring
Loại đối tượng của phản hồi HTTP GET thông thường. Giá trị luôn là realtime.endpoint.
websocket_urlstring
Đường dẫn tương đối để kết nối WebSocket do HTTP GET thông thường trả về: /v1/realtime?model={model}. Thay {model} bằng ID của mô hình đã chọn.
protocolstring
Mã định danh giao thức do HTTP GET thông thường trả về. Giá trị luôn là tokenlab_realtime_proxy.
typestring
Loại event hoặc message do API trả về.
session.idstring
Mã định danh mờ nhận được qua kết nối realtime. Dùng trong log hỗ trợ để gỡ lỗi; đây không phải REST session URL.

Xác thực

BearerAuth
AuthorizationBearer <token>

Xác thực bằng Khóa API. Tạo hoặc quản lý khóa API trong Dashboard > API > API Keys.

Vị trí: header

Tham số truy vấn

model?string

ID mô hình thời gian thực để định tuyến phiên WebSocket. Bắt buộc đối với các yêu cầu nâng cấp WebSocket; tùy chọn cho các kiểm tra metadata HTTP thông thường.

Phản hồi

application/json

application/json

application/json

application/json

application/json

application/json