統合ガイド
OpenAI Python SDK
公式の openai Python パッケージから GPT、Claude、Gemini などカタログ内のすべてのモデルを呼び出します。
公式の openai Python SDK は変更なしで ToRouter に対して動作します。base_url をゲートウェイに向け、ToRouter の API キーに差し替えるだけで、OpenAI の Chat Completions / Responses / Embeddings / Images API が単一のエンドポイントから OpenAI、Anthropic、Google などすべての上流にルーティングされます。
設定
| 項目 | 値 |
|---|---|
| Base URL | https://portal.torouter.ai/v1 |
| API キー | sk-***(ToRouter コンソールで作成) |
| モデル | gpt-5、claude-opus-4-7、gemini-2.5-pro など(カタログ参照) |
環境変数 OPENAI_BASE_URL と OPENAI_API_KEY は自動的に読み込まれるため、コード内で渡したくない場合はそちらを利用できます。
コード
from openai import OpenAI
client = OpenAI(
base_url="https://portal.torouter.ai/v1",
api_key="sk-***",
)
resp = client.chat.completions.create(
model="gpt-5",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)from openai import OpenAI
client = OpenAI(
base_url="https://portal.torouter.ai/v1",
api_key="sk-***",
)
stream = client.chat.completions.create(
model="claude-opus-4-7",
messages=[{"role": "user", "content": "Stream me a haiku"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)curl https://portal.torouter.ai/v1/chat/completions \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5","messages":[{"role":"user","content":"Hello"}]}'よくあるハマり
OPENAI_BASE_URLは SDK のデフォルトを上書きします。シェルで別のプロキシに設定されている場合でも、コンストラクタ引数の方が優先されます。- 末尾にスラッシュを付けないでください。
/v1/ではなく/v1を使います。SDK がパスを連結するため、末尾スラッシュがあると静かに 404 を返します。 - Responses API は同じ Base URL(
POST /v1/responses)で利用可能で、SDK のclient.responses.create(...)もそのまま動作します。