OpenAI SDK で任意のモデルを呼び出す

· Hyperouter · 読了目安 3 分

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"],
)

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)

レスポンスは 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)

リンクは署名付きで 24 時間有効です。GET /v1/generations/{id} を呼ぶと、新しい署名付きリンクが発行されます。qwen/qwen-image-2.0 も同じ方法で呼び出せます。同期的に応答するモデルで、画像が 90 秒以内に完成しない場合は、コード timeout と generation_id を添えた 503 が返ります。代わりにポーリングで結果を取得する方法は、結果を待つで説明しています。

次のステップ