OpenAI SDK で任意のモデルを呼び出す
Hyperouter は OpenAI の API に対応しています。どの OpenAI SDK でも、ベース URL と API キーの 2 点を変更するだけで使えます。このガイドでは、Python と TypeScript で、チャットの呼び出しと画像の呼び出しを 1 回ずつ行います。
1. キーを取得する
Google または GitHub でサインインし、API キーを作成します。キーは sk-hr-v1- で始まり、一度だけ表示されるため、環境変数に保存しておいてください。
export HYPEROUTER_API_KEY="sk-hr-v1-..."
リクエストの料金はプリペイド残高から支払われます。最初の呼び出しの前に、ダッシュボードでチャージの依頼を作成してください。キーはサーバー側で管理し、ブラウザーやモバイルのコードには決して含めないでください。
2. SDK を Hyperouter に向ける
ベース URL は https://api.hyperouter.app/v1 です。
import os from openai import OpenAI client = OpenAI( base_url="https://api.hyperouter.app/v1", api_key=os.environ["HYPEROUTER_API_KEY"], )
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.hyperouter.app/v1", apiKey: process.env.HYPEROUTER_API_KEY, });
3. チャット
モデルは Hyperouter の ID、<provider>/<name> の形式で指定します。次の呼び出しでは xAI の Grok 4.3 を使います。
res = client.chat.completions.create(
model="x-ai/grok-4.3",
messages=[{"role": "user", "content": "Explain idempotency in one sentence."}],
)
print(res.choices[0].message.content)
const res = await client.chat.completions.create({ model: "x-ai/grok-4.3", messages: [{ role: "user", content: "Explain idempotency in one sentence." }], }); console.log(res.choices[0].message.content);
レスポンスは OpenAI のチャット補完に 2 つの項目を加えたものです。リクエストを処理したプロバイダーを示す provider と、その課金額を USD で示す usage.cost です。OpenAI と同様に、stream: true を設定するとサーバー送信イベントで受け取れます。
最初のモデルのすべてのプロバイダーが失敗したときに別のモデルへフォールバックするには、models に列挙します。OpenAI SDK では、追加のボディフィールドとして送信します。
res = client.chat.completions.create(
model="x-ai/grok-4.3",
messages=[{"role": "user", "content": "Hello"}],
extra_body={"models": ["x-ai/grok-4.20-0309-non-reasoning"]},
)
4. 画像
Images API も同じ方法で使えます。次の呼び出しでは、Grok Imagine で画像を 1 枚生成します。
img = client.images.generate(
model="x-ai/grok-imagine-image",
prompt="A lighthouse at dusk",
)
print(img.data[0].url)
const img = await client.images.generate({ model: "x-ai/grok-imagine-image", prompt: "A lighthouse at dusk", }); console.log(img.data?.[0]?.url);
リンクは署名付きで 24 時間有効です。GET /v1/generations/{id} を呼ぶと、新しい署名付きリンクが発行されます。qwen/qwen-image-2.0 も同じ方法で呼び出せます。同期的に応答するモデルで、画像が 90 秒以内に完成しない場合は、コード timeout と generation_id を添えた 503 が返ります。代わりにポーリングで結果を取得する方法は、結果を待つで説明しています。
次のステップ
GET /v1/modelsは、お使いのアカウントで呼び出せるすべてのモデルを、価格と各モデルが受け付けるパラメーターとともに返します。- チャット補完リファレンスでは、ストリーミング、ツール、ルーティング用の
providerオブジェクトを説明しています。 - リトライと冪等性では、リトライが安全な場合を説明しています。