الصوت والوقت الفعلي
Realtime WebSocket
الاتصال بجلسات صوتية ومتعددة الوسائط فورية عبر WebSocket
نظرة عامة
استخدم نقطة النهاية هذه لجلسات الوقت الفعلي مثل التعرّف على الكلام بالبث، وتركيب الكلام، وترجمة الكلام، أو النماذج متعددة الوسائط في الوقت الفعلي. يعيد طلب GET العادي بيانات وصف نقطة النهاية، بينما يفتح طلب ترقية WebSocket جلسة في الوقت الفعلي للنموذج المحدد.
النطاق المدعوم
يوفّر TokenLab نقطة WebSocket فورية على GET /v1/realtime لفحص metadata وطلبات ترقية WebSocket. تعامل معها كسطح WebSocket محدود (WebSocket subset): فهي تمرّر أحداث نماذج realtime المدعومة فقط، ولا تدعم أسطح مساعدات REST في OpenAI Realtime مثل إنشاء الجلسات، أو client_secrets، أو واجهات التحكم بالمكالمات Calls، أو legacy beta session APIs.
في تطبيقات المتصفح أو الجوال، احتفظ بمفاتيح API طويلة العمر على الخادم. هذا المسار لا يصدر Realtime client secrets قصيرة العمر.
/v1/models، وتحقق من /v1/models/{model} ثم اضبط TOKENLAB_REALTIME_MODEL. تعتمد أحداث الجلسة وإعداداتها على النموذج. مثال JSON أدناه لاستجابة HTTP GET عادية، وليس حدث جلسة WebSocket.الاتصال
معرّف نموذج realtime. استخدم نموذجاً يعلن عقده العام دعم realtime.
مفتاح API بصيغة Bearer. يجب أن يرسل عميل WebSocket ترويسة Authorization: Bearer sk-your-api-key أثناء طلب الترقية.
الطلب
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));الرسائل
ينقل TokenLab رسائل WebSocket بين عميلك والنموذج الفوري المحدد. استخدم تنسيق الأحداث الموثّق لذلك النموذج، وأدرج model في سلسلة الاستعلام بدلاً من إدراجه في كل حدث.
الفوترة والإغلاق
تُحتسب تكلفة الجلسات من رصيد مفتاح API الخاص بك: يحجز TokenLab مبلغًا تقديريًا عند البدء، ثم يسوّي الاستخدام الفعلي عند الانتهاء ويعيد الفرق.
أغلق مقبس العميل عند اكتمال الجلسة. إذا أغلقت الخدمة الجلسة أولاً، يرسل TokenLab إلى عميلك حدث/رمز إغلاق آمنًا عند الإمكان.
الاستجابة
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}حقول مهمة
realtime.endpoint./v1/realtime?model={model}. استبدل {model} بمعرّف النموذج المحدد.tokenlab_realtime_proxy.التفويض
BearerAuth مصادقة مفتاح API. قم بإنشاء أو إدارة مفاتيح API في Dashboard > API > API Keys.
الموضع: header
معاملات الاستعلام
معرف النموذج الفوري (Realtime) لتوجيه جلسة WebSocket. مطلوب لطلبات ترقية WebSocket؛ واختياري لفحوصات البيانات الوصفية (metadata) عبر HTTP العادي.
الاستجابة
application/json
application/json
application/json
application/json
application/json
application/json