LogoToRouterドキュメント
LogoToRouterドキュメント
ホームToRouter とは5 分で始めるコアコンセプト
Base URL と認証OpenAI 互換 APIAnthropic 互換 APIGemini 互換 APIストリーミングレスポンス (SSE)モデル識別子とベンダープレフィックスPlayground — ブラウザで動作確認
ゲートウェイ

ストリーミングレスポンス (SSE)

OpenAI、Anthropic、Gemini プロトコルで Server-Sent Events を使ってトークンを段階的にストリーミング受信します。

3 つのプロトコルすべてが Server-Sent Events 経由でストリーミングに対応しています。適切なフラグを設定して、到着次第イベントを処理してください。

有効化の方法

プロトコルフラグ
OpenAI Chat / ResponsesJSON ボディに "stream": true
AnthropicJSON ボディに "stream": true
Gemini:streamGenerateContent + ?alt=sse を使用

SSE 形式

イベントは空行で区切られた data: 行として到着します。OpenAI ストリームは data: [DONE] で終了します。Anthropic と Gemini はそれぞれ独自の終端イベントを使用します。

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":"He"}}]}

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":"llo"}}]}

data: [DONE]

Python

from openai import OpenAI

client = OpenAI(api_key="sk-***", base_url="https://portal.torouter.ai/v1")

stream = client.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user", "content": "Count to 5"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)
from anthropic import Anthropic

client = Anthropic(api_key="sk-***", base_url="https://portal.torouter.ai")

with client.messages.stream(
    model="claude-opus-4-7",
    max_tokens=256,
    messages=[{"role": "user", "content": "Count to 5"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Node.js

stream.ts
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-***",
  baseURL: "https://portal.torouter.ai/v1",
});

const stream = await client.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Count to 5" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

推論モデル(例: *-thinking、o1、o3)は回答前に推論用の断片を出力します。対応しているエンドポイントでは、OpenAI SDK が delta.reasoning_content として返すことがあります。

次のステップ

OpenAI API

エンドポイントの完全リファレンス。

Anthropic API

/v1/messages の詳細。

エラーハンドリング

ストリーム切断とリトライ。

Gemini 互換 API

ネイティブな Google Gemini /v1beta サーフェス — generateContent、streamGenerateContent、google-genai SDK 対応。

モデル識別子とベンダープレフィックス

ToRouter のモデル命名規則 — 既定では OpenAI スタイルの ID、OpenRouter チャネルではベンダープレフィックス付き、加えて -thinking サフィックスに対応。

目次

有効化の方法SSE 形式PythonNode.js次のステップ