本文へスキップ

HopBase への移行

3 つの値を変えるだけで、OpenAI・OpenRouter・Anthropic API から HopBase へ移行できます。

移行で変えるのは Base URL、キー、必要に応じてモデル ID の 3 つだけです。リクエストボディ、ストリーミング処理、エラー処理のコードは変わりません。

変更する項目

OpenAIOpenRouterAnthropicHopBase
Base URLhttps://api.openai.com/v1https://openrouter.ai/api/v1https://api.anthropic.comOpenAI プロトコル:https://api.hop-base.com/v1
Anthropic プロトコル:https://api.hop-base.com(/v1 なし)
キーOpenAI のキー1 つの OpenRouter キーで全モデルAnthropic のキー「APIキー」で作成する sk-…。1〜10 個のグループを含められる
モデル IDgpt-5.5openai/gpt-5.5、anthropic/claude-sonnet-5claude-sonnet-5ベンダー接頭辞なし。GET /v1/models が返す ID をそのまま使用:gpt-5.5、claude-sonnet-5

モデルファミリーごとのプロトコルは Base URL とプロトコルを参照してください。

キーで呼び出せるのは、追加したグループのモデルです:

必要なグループをキーに追加してください。OpenRouter のキーは全モデルを呼び出せますが、HopBase のキーが呼び出せるのは、キーに含まれるグループ(プラットフォームをまたいで 1〜10 個)のモデルです。GET /v1/models はそれらのグループのモデルの和集合を返し、どのグループにもないモデルは 404 model_not_found になります。Claude と GPT の両方を使うアプリは、Claude グループと Codex Plus または Codex Pro グループを含む 1 つのキーで済み、各リクエストはそのモデルを処理するグループで課金されます。モデルが重複するグループ(Codex Plus と Codex Pro など)は同じキーに入れられず(GPT 公式ダイレクト(Azure)と Codex グループ・GPT Image 全モデルの併用は例外。グループの選び方を参照)、サブスクリプション型のグループは単独でキーにする必要があります。

OpenAI SDK

Base URL を設定し、キーを差し替えます。gpt-5.5 などの OpenAI モデル ID は、キーの GET /v1/models に含まれていればそのままで構いません。

 import os
 from openai import OpenAI

 client = OpenAI(
-    api_key=os.environ["OPENAI_API_KEY"],
+    base_url="https://api.hop-base.com/v1",
+    api_key=os.environ["HOPBASE_OPENAI_API_KEY"],
 )

 resp = client.chat.completions.create(
     model="gpt-5.5",
     messages=[{"role": "user", "content": "Hello"}],
 )

コードを変えたくない場合、どちらの SDK も環境変数 OPENAI_BASE_URL と OPENAI_API_KEY を読み込みます。それぞれ https://api.hop-base.com/v1 と HopBase のキーを設定してください。ほかの例は OpenAI SDK にあります。

Anthropic SDK

Claude は Anthropic Messages API のまま使います。Base URL は /v1 を付けず、キーは「Claude Max エンタープライズ版」グループのものを使ってください。「Claude Max(ccmax)」グループのキーは Claude Code クライアント専用で、SDK からの呼び出しは失敗します。

 import os
 from anthropic import Anthropic

 client = Anthropic(
-    api_key=os.environ["ANTHROPIC_API_KEY"],
+    base_url="https://api.hop-base.com",
+    api_key=os.environ["HOPBASE_CLAUDE_API_KEY"],
 )

 msg = client.messages.create(
     model="claude-sonnet-5",
     max_tokens=1024,
     messages=[{"role": "user", "content": "Hello"}],
 )

こちらも環境変数だけで切り替えられます:ANTHROPIC_BASE_URL=https://api.hop-base.com。詳細は Anthropic SDK を参照してください。

OpenRouter

Base URL とキーを変え、モデル名からベンダー接頭辞を外し、OpenRouter の帰属ヘッダーを削除します。HopBase では不要です。

 import os
 from openai import OpenAI

 client = OpenAI(
-    base_url="https://openrouter.ai/api/v1",
-    api_key=os.environ["OPENROUTER_API_KEY"],
-    default_headers={"HTTP-Referer": "https://your-app.example", "X-Title": "Your App"},
+    base_url="https://api.hop-base.com/v1",
+    api_key=os.environ["HOPBASE_OPENAI_API_KEY"],
 )

 resp = client.chat.completions.create(
-    model="openai/gpt-5.5",
+    model="gpt-5.5",
     messages=[{"role": "user", "content": "Hello"}],
 )

OpenRouter の OpenAI 互換エンドポイント経由で Claude を呼んでいた場合、HopBase には Claude 用のその経路はありません。前節のとおり、Claude グループのキーで Anthropic SDK に切り替えてください。その他のファミリー(Gemini、GLM、Qwen、DeepSeek、Kimi、Grok)は OpenAI SDK のまま、各ファミリーのグループを含むキーを使います。

非対応の機能

使っている可能性があるものHopBase での扱い
/v1/chat/completions または /v1/responses での Claude404。Anthropic Messages を使用:Anthropic SDK
Gemini SDK ネイティブパス(:generateContent)での Gemini「Gemini 公式ダイレクト(エンタープライズ)」で対応:SDK の Base URL を https://api.hop-base.com に変更するだけです。「Gemini 特価版(AI Studio / Vertex)」は非対応:Gemini チャット
/v1/responses・/v1/messages での Kimi K3Chat Completions のみ:Kimi K3
Embeddings、音声文字起こし、Files、Batch、Assistants、ファインチューニング、モデレーション提供なし。これらのパスは 404
1 つのキーで全モデルモデルが重複しない限り(GPT 公式ダイレクト(Azure)と Codex グループ・GPT Image 全モデルの併用は例外)、1 つのキーにプラットフォームをまたいで最大 10 個のグループを含められます(上記参照)
OpenRouter のモデルフォールバック一覧(models)、provider ルーティング、:online / :free などのモデル接尾辞非対応。削除して単一のモデル ID を送信

エンドポイントの一覧は Base URL とプロトコルにあります。

移行後の確認

キーのモデル一覧を取得

新しいキーで GET https://api.hop-base.com/v1/models を呼び、レスポンスに含まれる ID だけを使います。

小さなリクエストを 1 つ送信

「ok とだけ返答して」と依頼し、200 を確認します。404 の多くは、モデルがこのキーのどのグループにも無いか、Base URL のプロトコルが違うことが原因です。エラーコードと再試行を参照してください。

キーの利用可能額を確認

GET https://api.hop-base.com/v1/usage がキーの利用可能残高を返します。項目の説明はアカウント・カタログ APIにあります。

次のステップ