OpenAI WebSocket API: стримінг у реальному часі на 75% дешевше

Smart AIPI тепер підтримує WebSocket API від OpenAI для двонаправленого streaming у реальному часі. Нижча затримка, ніж у SSE, постійні з'єднання та на 75% дешевше. Ось як підключитися.

S
Smart AIPI Team
7 хв читання ·
OpenAI WebSocket API: стримінг у реальному часі на 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%

Швидкий старт

  1. Отримайте API key — Зареєструйтеся на smartaipi.com (включено безкоштовні кредити, кредитна картка не потрібна)
  2. Підключіться — Відкрийте WebSocket до wss://api.smartaipi.com/v1/realtime
  3. Надсилайте події — Використовуйте envelope response.create зі своєю моделлю та prompt
  4. Отримуйте 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 у тому самому з'єднанні без повторного підключення.

WebSocket Streaming Real-Time API
S
Автор
Smart AIPI

OpenAI-сумісний API gateway. Доступ до frontier AI моделей на 75% дешевше.

Почати безкоштовно

Повідомлення надіслано

Ми відповімо вам протягом 2 робочих днів.

Зв’язатися з підтримкою

Маєте запитання або потрібна допомога? Надішліть нам повідомлення, і ми відповімо вам протягом 2 робочих днів.