OpenAI WebSocket API:75%低コストで実現するリアルタイム streaming

Smart AIPI が OpenAI の WebSocket API をサポートしました。リアルタイムの双方向 streaming、SSE より低いレイテンシ、永続接続、そして 75% 安価です。接続方法を紹介します。

S
Smart AIPI Team
読了時間 7分 ·
OpenAI WebSocket API:75%低コストで実現するリアルタイム streaming

要点: Smart AIPI が OpenAI の WebSocket API をサポートしました。wss://api.smartaipi.com/v1/realtime に接続し、response.create event を送信すると、永続接続上でレスポンスをリアルタイムに streaming できます。同じ model、同じ protocol、75% 安価です。

WebSocket streaming は、AI model とやり取りする最速の方法です。 従来の HTTP リクエストや Server-Sent Events (SSE) と異なり、WebSocket はアプリケーションと API の間で永続的な双方向接続を維持します。リクエストごとの接続確立は不要で、HTTP オーバーヘッドもなく、半二重の制限もありません。

Smart AIPI は現在、この protocol を wss://api.smartaipi.com/v1/realtime でサポートしています。OpenAI の WebSocket API と完全互換で、コストは 75% 低くなります。

なぜ SSE ではなく WebSocket なのか?

Server-Sent Events は AI streaming の標準でしたが、WebSocket は SSE のトレードオフを解消します:

機能 SSE (HTTP) WebSocket
リクエストごとの接続 毎回新しい接続 永続的(再利用)
方向 Server → Client のみ 双方向
1つの接続で複数リクエスト 不可 可能
最初の token までのレイテンシ 高い(新規 TCP + TLS) 低い(接続再利用)
最適な用途 シンプルな統合 Agent、リアルタイムアプリ、高スループット

数十回の連続した API 呼び出しを行う agent loop では、永続的な WebSocket 接続による累積レイテンシ削減は非常に大きくなります。

仕組み

WebSocket API は event-driven protocol に従います。サーバーに JSON event を送信し、JSON event を受信します。すべて単一の永続接続上で行われます。

1. 接続と認証

header に API key を付けて WebSocket 接続を開きます:

wss://api.smartaipi.com/v1/realtime
Authorization: Bearer sk-proj-your-smart-aipi-key
OpenAI-Beta: realtime=v1

2. リクエストを送信

response.create event を 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 パラメータは Smart AIPI WebSocket 接続で必須です。

3. Streaming events を受信

レスポンス生成中、サーバーは一連の event を返します:

Event 説明
response.created Response object が作成された
response.output_item.added 新しい output item(message)が開始された
response.content_part.added output item 内で content part が開始された
response.output_text.delta テキストチャンク(実際に streamed される内容)
response.output_text.done テキスト出力が完了
response.completed レスポンス全体が完了(終端 event)

コード例

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(クイックテスト)

1つのコマンドで 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 の使い分け

どちらの protocol も Smart AIPI で利用できます。用途に応じて選んでください:

  • SSE を使う — シンプルな統合、単発リクエスト、できるだけ簡単な実装を求める場合。標準 API call に stream: true を設定します。
  • WebSocket を使う — agent loop、対話型アプリケーション、高頻度のリクエストパターン、連続 call 間のレイテンシを最小にしたい場合。

料金

WebSocket リクエストの課金は標準 API リクエストと同じで、token 使用量ベースです。75% 割引が適用されます:

Model 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. 接続wss://api.smartaipi.com/v1/realtime に WebSocket 接続を開きます
  3. event を送信 — model と prompt を含む response.create envelope を使用します
  4. レスポンスを streaming — 到着した response.output_text.delta event を処理します

すでに OpenAI の WebSocket API を使っている場合、変更点は URL だけです。それ以外、認証、event、payload format はすべて同じです。

よくある質問

Smart AIPI は OpenAI WebSocket API をサポートしていますか?

はい。Authorization header に API key を指定して wss://api.smartaipi.com/v1/realtime に接続してください。この protocol は OpenAI の WebSocket Responses API と完全互換です。

WebSocket は SSE より高速ですか?

連続リクエストでは高速です。WebSocket は永続接続を維持するため、SSE が新規リクエストごとに発生させる TCP と TLS の handshake オーバーヘッドをなくせます。単発のリクエストでは差はほとんどありません。

どの model が WebSocket で使えますか?

Responses API で利用可能なすべての model が使えます。GPT-5.3 Codex、GPT-5.2、Codex Mini などです。response.create event で model を指定してください。

function calling や tool use は WebSocket でも動きますか?

はい。Responses API の全機能が利用できます。function calling、tool use、structured outputs、マルチターン会話はすべて WebSocket 接続で動作します。

接続時間に制限はありますか?

アイドル状態の接続は 15 分後に閉じられます。必要に応じて定期的にメッセージを送るか、再接続してください。データを streaming 中のアクティブな接続は中断されません。

1つの接続で複数のリクエストを送れますか?

はい。これは主要な利点の1つです。レスポンス完了後、再接続せずに同じ接続上で別の response.create event を送信できます。

WebSocket Streaming Real-Time API
S
執筆者
Smart AIPI

OpenAI互換のAPI gateway。最先端のAI modelsに75%低いコストでアクセス。

無料で始める

メッセージを送信しました

2営業日以内にご返信します。

サポートに問い合わせ

ご質問やサポートが必要ですか?メッセージを送っていただければ、2営業日以内にご返信します。