OpenAI WebSocket API: потоковая передача в реальном времени на 75% дешевле
Smart AIPI теперь поддерживает OpenAI WebSocket API для двунаправленного streaming в реальном времени. Ниже задержка, чем у SSE, постоянные соединения и на 75% дешевле. Вот как подключиться.
Кратко: Smart AIPI теперь поддерживает OpenAI WebSocket API. Подключитесь к wss://api.smartaipi.com/v1/realtime, отправьте событие response.create и получайте ответы в реальном времени по постоянному соединению. Те же модели, тот же протокол, на 75% дешевле.
WebSocket streaming — самый быстрый способ взаимодействия с AI-моделями. В отличие от традиционных HTTP-запросов или даже Server-Sent Events (SSE), WebSocket поддерживает постоянное двунаправленное соединение между вашим приложением и API. Не нужно заново устанавливать соединение для каждого запроса, нет HTTP overhead, нет ограничений полудуплекса.
Smart AIPI теперь поддерживает этот протокол по адресу wss://api.smartaipi.com/v1/realtime — с полной совместимостью с OpenAI WebSocket API и на 75% меньшей стоимости.
Почему WebSocket вместо SSE?
Server-Sent Events были стандартом для AI streaming, но у них есть компромиссы, которых WebSocket позволяет избежать:
| Возможность | SSE (HTTP) | WebSocket |
|---|---|---|
| Соединение на каждый запрос | Каждый раз новое соединение | Постоянное (повторно используется) |
| Направление | Только Server → Client | Двунаправленное |
| Несколько запросов в одном соединении | Нет | Да |
| Задержка до первого token | Выше (новые TCP + TLS) | Ниже (повторное использование соединения) |
| Идеально для | Простых интеграций | Агентов, приложений реального времени, высокого throughput |
Для циклов агентов, которые выполняют десятки 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 | Начат новый элемент вывода (message) |
| response.content_part.added | Внутри элемента вывода начата часть контента |
| response.output_text.delta | Фрагмент текста (фактический streaming-контент) |
| 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 для циклов агентов, интерактивных приложений, высокочастотных шаблонов запросов и везде, где нужна минимально возможная задержка между последовательными вызовами.
Цены
Запросы WebSocket тарифицируются так же, как и стандартные API-запросы — по использованию token. Скидка 75% применяется:
| Модель | OpenAI напрямую | 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 - Отправляйте события — используйте оболочку
response.createс вашей моделью и prompt - Получайте ответы в streaming — обрабатывайте события
response.output_text.deltaпо мере поступления
Если вы уже используете OpenAI WebSocket API, единственное изменение — это URL. Все остальное — аутентификация, события, формат payload — идентично.
Часто задаваемые вопросы
Поддерживает ли Smart AIPI OpenAI WebSocket API?
Да. Подключитесь к wss://api.smartaipi.com/v1/realtime, передав ваш API key в header Authorization. Протокол полностью совместим с OpenAI WebSocket Responses API.
WebSocket быстрее, чем SSE?
Для последовательных запросов — да. WebSocket поддерживает постоянное соединение, устраняя overhead TCP и TLS handshake, который у SSE возникает при каждом новом запросе. Для одиночных разовых запросов разница незначительна.
Какие модели работают через WebSocket?
Все модели, доступные через Responses API: GPT-5.3 Codex, GPT-5.2, Codex Mini и другие. Укажите модель в событии response.create.
Работают ли function calling и использование tools через WebSocket?
Да. Доступен полный набор возможностей Responses API — function calling, использование tools, structured outputs и многошаговые диалоги работают через WebSocket-соединение.
Есть ли ограничение по времени соединения?
Неактивные соединения закрываются через 15 минут. Отправляйте периодические сообщения или переподключайтесь при необходимости. Активные соединения, передающие данные в streaming, не прерываются.
Можно ли отправлять несколько запросов по одному соединению?
Да. Это одно из ключевых преимуществ. После завершения ответа отправьте еще одно событие response.create по тому же соединению без переподключения.
OpenAI-совместимый API gateway. Доступ к frontier AI моделям на 75% дешевле.
Начать бесплатно