OpenAI WebSocket API: стримінг у реальному часі на 75% дешевше
Smart AIPI тепер підтримує WebSocket API від OpenAI для двонаправленого streaming у реальному часі. Нижча затримка, ніж у SSE, постійні з'єднання та на 75% дешевше. Ось як підключитися.
Коротко: Smart AIPI тепер підтримує WebSocket API від OpenAI. Підключайтеся до wss://api.smartaipi.com/v1/realtime, надсилайте подію response.create і отримуйте stream відповідей у реальному часі через постійне з'єднання. Ті самі моделі, той самий протокол, на 75% дешевше.
WebSocket streaming — найшвидший спосіб взаємодії з AI-моделями. На відміну від традиційних HTTP-запитів або навіть Server-Sent Events (SSE), WebSocket підтримує постійне двонаправлене з'єднання між вашим застосунком і API. Без встановлення нового з'єднання на кожен запит, без HTTP-накладних витрат, без обмежень half-duplex.
Smart AIPI тепер підтримує цей протокол за адресою wss://api.smartaipi.com/v1/realtime — повністю сумісний із WebSocket API від OpenAI і на 75% дешевший.
Чому WebSocket замість SSE?
Server-Sent Events були стандартом для AI streaming, але мають компроміси, яких WebSocket позбавляє:
| Можливість | SSE (HTTP) | WebSocket |
|---|---|---|
| З'єднання на запит | Нове з'єднання щоразу | Постійне (повторно використовується) |
| Напрямок | Лише Server → Client | Двонаправлений |
| Кілька запитів в одному з'єднанні | Ні | Так |
| Затримка до першого token | Вища (новий TCP + TLS) | Нижча (повторне використання з'єднання) |
| Найкраще підходить для | Простих інтеграцій | Агентів, застосунків у реальному часі, високого throughput |
Для agent loops, які виконують десятки API-викликів поспіль, сумарна економія затримки завдяки постійному WebSocket-з'єднанню є суттєвою.
Як це працює
WebSocket API використовує подієвий протокол. Ви надсилаєте JSON-події на сервер і отримуєте JSON-події у відповідь — усе через одне постійне з'єднання.
1. Підключення й автентифікація
Відкрийте WebSocket-з'єднання з вашим API key у headers:
wss://api.smartaipi.com/v1/realtime
Authorization: Bearer sk-proj-your-smart-aipi-key
OpenAI-Beta: realtime=v1
2. Надішліть запит
Надішліть подію response.create зі своїм prompt:
{
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": false,
"instructions": "You are a helpful assistant.",
"input": [
{
"type": "message",
"role": "user",
"content": [
{ "type": "input_text", "text": "What is WebSocket?" }
]
}
]
}
}
Примітка: Параметр store: false є обов'язковим для WebSocket-з'єднань Smart AIPI.
3. Отримуйте streaming-події
Сервер надсилає послідовність подій у процесі генерації відповіді:
| Подія | Опис |
|---|---|
| response.created | Об'єкт відповіді створено |
| response.output_item.added | Почато новий output item (повідомлення) |
| response.content_part.added | У межах output item розпочато частину вмісту |
| response.output_text.delta | Фрагмент тексту (власне stream-контент) |
| response.output_text.done | Виведення тексту завершено |
| response.completed | Усю відповідь завершено (термінальна подія) |
Приклади коду
Node.js
import WebSocket from "ws";
const ws = new WebSocket("wss://api.smartaipi.com/v1/realtime", {
headers: {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
},
});
ws.on("open", () => {
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-5.3-codex",
store: false,
input: [{
type: "message",
role: "user",
content: [{ type: "input_text", text: "Hello!" }],
}],
},
}));
});
ws.on("message", (data) => {
const event = JSON.parse(data);
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
if (event.type === "response.completed") {
console.log("\n\nDone. Usage:", event.response.usage);
ws.close();
}
});
Python
import asyncio
import json
import websockets
async def main():
headers = {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
}
async with websockets.connect(
"wss://api.smartaipi.com/v1/realtime",
extra_headers=headers,
) as ws:
await ws.send(json.dumps({
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": False,
"input": [{
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}],
}],
},
}))
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_text.delta":
print(event["delta"], end="", flush=True)
if event["type"] == "response.completed":
print(f"\n\nUsage: {event['response']['usage']}")
break
asyncio.run(main())
cURL (швидкий тест)
Перевірте, що WebSocket handshake виконується успішно, однією командою:
curl -isN --http1.1 \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Sec-WebSocket-Version: 13" \
-H "Sec-WebSocket-Key: dGVzdA==" \
-H "Authorization: Bearer sk-proj-your-key" \
-H "OpenAI-Beta: realtime=v1" \
https://api.smartaipi.com/v1/realtime
Успішне з'єднання повертає HTTP/1.1 101 Switching Protocols.
Коли використовувати WebSocket, а коли SSE
Обидва протоколи працюють через Smart AIPI. Обирайте залежно від вашого сценарію використання:
- Використовуйте SSE для простих інтеграцій, одноразових запитів і коли вам потрібна максимально проста реалізація. Встановіть
stream: trueу будь-якому стандартному API-виклику. - Використовуйте WebSocket для agent loops, інтерактивних застосунків, сценаріїв із високою частотою запитів і всюди, де потрібна мінімально можлива затримка між послідовними викликами.
Ціни
Запити через WebSocket тарифікуються так само, як і стандартні API-запити — за використанням token. Діє знижка 75%:
| Модель | OpenAI Direct | Smart AIPI | Економія |
|---|---|---|---|
| GPT-5.3 Codex (output) | $14.00 / 1M tokens | $3.50 / 1M tokens | 75% |
| GPT-5.2 (output) | $10.00 / 1M tokens | $2.50 / 1M tokens | 75% |
| Codex Mini (output) | $0.60 / 1M tokens | $0.15 / 1M tokens | 75% |
Швидкий старт
- Отримайте API key — Зареєструйтеся на smartaipi.com (включено безкоштовні кредити, кредитна картка не потрібна)
- Підключіться — Відкрийте WebSocket до
wss://api.smartaipi.com/v1/realtime - Надсилайте події — Використовуйте envelope
response.createзі своєю моделлю та prompt - Отримуйте stream відповідей — Обробляйте події
response.output_text.deltaу міру їх надходження
Якщо ви вже використовуєте WebSocket API від OpenAI, єдина зміна — це URL. Усе інше — автентифікація, події, формат payload — ідентичне.
Поширені запитання
Чи підтримує Smart AIPI OpenAI WebSocket API?
Так. Підключайтеся до wss://api.smartaipi.com/v1/realtime зі своїм API key у header Authorization. Протокол повністю сумісний із OpenAI WebSocket Responses API.
WebSocket швидший за SSE?
Для послідовних запитів — так. WebSocket підтримує постійне з'єднання, усуваючи накладні витрати на TCP і TLS handshake, які SSE має для кожного нового запиту. Для одиничних одноразових запитів різниця незначна.
Які моделі працюють через WebSocket?
Усі моделі, доступні через Responses API: GPT-5.3 Codex, GPT-5.2, Codex Mini та інші. Вкажіть модель у події response.create.
Чи працюють function calling і tool use через WebSocket?
Так. Доступний повний набір можливостей Responses API — function calling, tool use, structured outputs і багатокрокові розмови — усе працює через WebSocket-з'єднання.
Чи є обмеження за часом для з'єднання?
Неактивні з'єднання закриваються через 15 хвилин. Надсилайте періодичні повідомлення або перепідключайтеся за потреби. Активні з'єднання, які передають data у stream, не перериваються.
Чи можу я надсилати кілька запитів через одне з'єднання?
Так. Це одна з ключових переваг. Після завершення відповіді просто надішліть наступну подію response.create у тому самому з'єднанні без повторного підключення.
OpenAI-сумісний API gateway. Доступ до frontier AI моделей на 75% дешевше.
Почати безкоштовно