結論から言うと、DeepSeek、Qwen、GLM、Kimi、Doubao Seed は OpenAI 互換の API キー 1 本で呼び出せ、同じキーで Claude と GPT もカバーできます。HopBase では、OpenAI SDK のベース URL を https://api.hop-base.com/v1 に設定し、コンソールで各モデルファミリーのグループをキーに追加(キー 1 本につき最大 10 グループ)したうえで、model フィールドだけを切り替えます:deepseek-v4.1-flash、qwen3.8-max、glm-5.3、kimi-k3、doubao-seed-2-1-pro-260628。Claude は Anthropic SDK を使い、ベース URL は https://api.hop-base.com(/v1 なし)です。課金は USD 建てで 1 つの残高から行われ、ストリーミングでないレスポンスにはすべて正確な課金額が付きます。連携でつまずくのはエンドポイントではなくモデルごとの違いです。Kimi K3 は思考内容を返させるのに include_reasoning が必要、Doubao の 2 モデルは tool_choice を無視、Qwen はコンテキスト段階制の課金、DeepSeek V4.1 Flash にはピーク/オフピーク料金があります。本ガイドではそれらをすべて挙げ、2026-10-29 に実リクエストで 1 つずつ確認しました。
5 つのアカウントではなくキー 1 本にする理由
中国発のオープンウェイトモデルやフロンティアモデルは、いまや多くのスタックで標準的な構成要素です。安価な推論には DeepSeek、長文コンテキストには Qwen と GLM、エージェント型コーディングには Kimi K3、マルチモーダルチャットには Doubao Seed、といった具合です。直接契約すると、開発者コンソールが 5 つ、残高が 5 つ、請求書が 5 つになります。そのうちいくつかのコンソールは主に中国本土のユーザー向けに作られており、中国語のインターフェース、電話番号認証、人民元での支払いが求められます。さらに各ベンダーの「OpenAI 互換」API には、それぞれ独自の拡張があります。
ゲートウェイを使えば、アカウント 1 つ、USD 残高 1 つ、ベース URL 1 つで済みます。ただしモデルごとの違いはなくならないため、本記事の大半はその違いの解説にあてています。
モデルラインナップと定価
以下の ID はすべて公開カタログで稼働中です。価格は、メーカーが USD 価格を公表しているものについては 100 万トークンあたりの公式定価です。それ以外は最新の料金ページをご覧ください。料金ページでは全モデルのキャッシュ入力価格も確認できます。
| ファミリー | モデル ID | コンテキスト / 最大出力 | プロトコル | 定価(100 万トークンあたり 入力 / 出力) |
|---|---|---|---|---|
| DeepSeek | deepseek-v4.1-flash、deepseek-v4.1-flash-1017、deepseek-v4-pro-202606、deepseek-v4-flash-202605 | 1M / 最大 393,216 | Chat Completions、Responses、Anthropic Messages | 最新の料金ページを参照 |
| Qwen(Alibaba) | qwen3.8-max、qwen3.8-flash、qwen3.7-max、qwen3.7-plus、qwen3.7-flash | 1M / 131,072 | Chat Completions、Responses | 最新の料金ページを参照 |
| GLM(Zhipu) | glm-5.3、glm-5.3-flash | 1M / 最大 131,072 | Chat Completions | 最新の料金ページを参照 |
| Kimi(Moonshot) | kimi-k3 | 1,048,576 / 32,768 | Chat Completions のみ | $3 / $15 |
| Doubao Seed(ByteDance) | doubao-seed-2-1-pro-260628、doubao-seed-2-1-pro-260915、doubao-seed-2-1-lite-260915、doubao-seed-2-1-turbo-260628 ほか 3 モデル | 128K-1M / 32K-256K | Chat Completions、Responses、Anthropic Messages | 最新の料金ページを参照 |
| Claude、GPT | claude-sonnet-5-5、gpt-6-sol など | モデルごと | Claude:Anthropic Messages、GPT:Chat Completions、Responses | Sonnet 5.5:$2 / $10、GPT-6 Sol:$2 / $10 |
DeepSeek と GLM には、末尾が -us の US リージョン用 ID も別途あります(例:deepseek-v4.1-flash-us、glm-5.3-us)。これらは専用のグループと専用の価格を持ち、3 つのプロトコルすべてに対応しています。詳しくは US リージョンガイドをご覧ください。
3 ステップで設定
- api.hop-base.com でメールアドレス、または Google / GitHub アカウントで登録し、「APIキー」を開きます。
- キーを作成し、必要なグループを追加します。DeepSeek、Qwen、GLM、Kimi K3、Doubao Seed に加え、同じキーで使いたければ Claude グループと GPT グループも追加します。これで 7 グループとなり、キー 1 本あたり 10 グループの上限に収まります。1 本のキーに同じモデルを提供するグループが 2 つある場合(たとえば Claude グループが 2 つ)、保存前にダイアログでどちらのグループに提供させるかを選ぶよう求められます。
- キーで利用できるモデルを一覧表示し、返ってきた ID だけを使います。
export HOPBASE_API_KEY=sk-your-key
curl https://api.hop-base.com/v1/models -H "Authorization: Bearer $HOPBASE_API_KEY"
1 つのクライアントで 5 つのモデルファミリー
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.hop-base.com/v1",
api_key=os.environ["HOPBASE_API_KEY"])
models = ["deepseek-v4.1-flash", "qwen3.8-max", "glm-5.3",
"kimi-k3", "doubao-seed-2-1-pro-260628"]
for m in models:
raw = client.chat.completions.with_raw_response.create(
model=m,
messages=[{"role": "user", "content": "In one sentence: what is a vector database?"}],
max_tokens=2000,
)
resp = raw.parse()
print(m, "|", resp.choices[0].message.content.strip()[:80],
"| cost USD:", raw.headers.get("X-HopBase-Cost-USD"))
課金されたストリーミングでないレスポンスにはすべて X-HopBase-Cost-USD が付き、残高から差し引かれた正確な金額を示します。同じ値は JSON の usage.cost_usd にも入ります。ストリーミングのレスポンスには付きません。ヘッダーは生成開始前に送信されるためです。ストリーミングのリクエストはコンソールの「使用記録」ページで確認してください。max_tokens をあえて大きめにしているのは、これらのモデルの多くがデフォルトで思考を行い、思考トークンも上限に含まれるためです。
Claude は同じキーで Anthropic SDK を経由して呼び出します。
from anthropic import Anthropic
claude = Anthropic(base_url="https://api.hop-base.com", api_key=os.environ["HOPBASE_API_KEY"])
msg = claude.messages.create(model="claude-sonnet-5-5", max_tokens=512,
messages=[{"role": "user", "content": "Hello"}])
モデルごとの注意点
Kimi K3
- 思考内容が
reasoning_contentに返されるのは、リクエストで"include_reasoning": trueを指定した場合だけです。thinkingとreasoning_effortは効果がありません。OpenAI SDK ではextra_body={"include_reasoning": True}で渡します。当社のテストでは、同じプロンプトでもフラグなしではreasoning_contentが返らず、フラグありでは返りました。 max_tokensの上限は 32,768 で思考を含みます。nは 1 でなければならず、temperatureは 0-1、top_pと frequency/presence ペナルティは無視されます。- 画像は base64 で渡す必要があり、画像 URL では 400 になります。
/v1/responsesと/v1/messagesは 404 を返すため、Claude Code や Codex からは CC Switch のようなローカルルーターを経由しないと使えません(Kimi K3 ガイドを参照)。
DeepSeek
deepseek-v4.1-flashとdeepseek-v4.1-flash-1017は、DeepSeek が公表しているピーク/オフピークのスケジュールに従います。ピークは平日の北京時間 09:00-12:00 と 14:00-18:00 で、オフピークは半額です。リクエストの価格は完了した時点で決まります。コストを重視するなら、バッチジョブはこれらの時間帯を避けて実行しましょう。deepseek-v4-pro-202606とdeepseek-v4-flash-202605は、ピーク定価に基づく終日一律料金で課金されます。deepseek-v4.1-flash-1017は 2026-10-17 リリース版で、deepseek-v4.1-flashは 9 月のリリース版のままです。どちらも標準のimage_urlパートで画像を読み取れますが、V4 Pro と V4 Flash は画像を 400 で拒否します。バージョンはモデル ID で選んでください。- 4 モデルすべてが Chat Completions、Responses、Anthropic Messages で応答します。当社ではそのうち 3 モデルに、各エンドポイントで同じプロンプトを送って確認しました。Chat Completions では思考内容は
contentではなくreasoning_contentに返されます。
Qwen
- 課金はコンテキストによる段階制です。1 リクエストの入力がしきい値を超えると、そのリクエスト全体がその段階の料金で課金されます。
qwen3.7-plusは 256K 超、qwen3.7-flashは 32K 超で段階が上がります。qwen3.8-max、qwen3.8-flash、qwen3.7-maxは単一段階です。プロンプトキャッシュを使ってもしきい値未満に収まるわけではありません。 - レイテンシ重視の呼び出しでは、
enable_thinking: false(extra_body経由)を渡して推論をオフにできます。qwen3.7-max以外のすべてのモデルが画像と動画の入力に対応しています。
GLM
glm-5.3はテキスト専用で、画像を渡すと 400 になります。GLM の 2 モデルはどちらも Chat Completions のみに対応しているため、Responses しか話さない Codex CLI からは使えません。US リージョンのglm-5.3-usは 3 つのプロトコルすべてに対応しています。glm-5.3-flashは常に思考し、その内容をreasoning_contentに返します。推奨設定はtemperature1、top_p0.95 で、ツール呼び出しをストリーミングする場合はtool_stream: trueも指定します。テキスト、画像、動画、ファイルの入力に対応しています。
Doubao Seed
doubao-seed-evolvingとdoubao-seed-2-1-pro-260915はtool_choiceを無視します。当社のテストでは、特定の関数を強制指定するとdoubao-seed-2-1-pro-260628はその関数を呼び出しましたが、doubao-seed-2-1-pro-260915はプレーンテキストで回答しました。ツール呼び出しを強制または無効化したい場合は、doubao-seed-2-1-pro-260628かdoubao-seed-2-1-lite-260915を使ってください。doubao-seed-character-260628以外のすべてのモデルはデフォルトで思考します。チャット用のdoubao-seed-*と動画用のdoubao-seedance-*の ID を混同しないよう注意してください。
ファミリーをまたいだエラー処理
OpenAI プロトコルでのゲートウェイのエラーは、次の 1 つの形式に統一されています:{"error": {"code": ..., "message": ..., "type": ...}}。分岐は HTTP ステータスと code で行い、メッセージ本文では判定しないでください。メッセージは Accept-Language ヘッダーに応じて変わります。よく遭遇するコードは次のとおりです。
- 404
model_not_found:そのモデルがこのキーのどのグループにも含まれていません。/v1/modelsを再取得してください。 - 402
insufficient_quota:残高がない、またはこのキー自体の利用上限に達しています。 - 429
user_concurrency_limit/apikey_concurrency_limit:同時実行中のリクエストが多すぎます。リクエストはキューに入らず即座に拒否されるため、バックオフを入れてリトライしてください。
出力を生成する前に失敗したリクエストは課金されません。
中国系モデル向けゲートウェイの選び方
これらのモデルをキー 1 本で使う方法は、セルフホストのプロキシからマネージドサービスまでいくつかあります。決める前に次の点を確認しましょう。
- 「deepseek-latest」のような名前だけでなく、日付入りの正確なモデル ID(例:
deepseek-v4.1-flash-1017)があるか。 include_reasoning、enable_thinking、reasoning_contentといったモデル固有のパラメータが欠けずに透過されるか。- リクエストごとのコストを API で確認できるか、失敗したリクエストが無料か。
- リクエストしたモデルが本当に応答しているか検証できるか。当社の再現可能な真正性テストはどのプロバイダーに対しても使えます。
- Claude と GPT を中国系モデルと同じキー・同じ残高で使えるか。
よくある質問
DeepSeek、Qwen、Kimi を OpenAI の Python SDK で使えますか?
はい。base_url="https://api.hop-base.com/v1" を設定し、モデル ID を指定するだけです。include_reasoning(Kimi)や enable_thinking(Qwen)などのモデル固有フィールドは extra_body に入れます。
中国の電話番号や中国の決済手段は必要ですか?
いいえ。api.hop-base.com でメールアドレス、または Google / GitHub アカウントで登録でき、残高と課金は USD 建てです。「チャージ」ページでは、支払い前に決済通貨、手数料、入金される金額を確認できます。
1 本のキーで Claude と DeepSeek の両方を呼び出せますか?
はい、キーに両方のグループが含まれていれば可能です。Claude は https://api.hop-base.com で Anthropic プロトコル、DeepSeek は https://api.hop-base.com/v1 で OpenAI プロトコルを使います。各リクエストは、そのモデルを提供するグループの料金で課金されます。
Kimi K3 が推論内容を返さないのはなぜですか?
Kimi K3 は、リクエストで "include_reasoning": true を指定した場合にのみ reasoning_content を返します。いずれの場合も思考トークンは出力として課金され、max_tokens にも含まれます。
パラメータの上限の全容はどこで確認できますか?
DeepSeek、Qwen、GLM-5.3、Kimi K3 の各ドキュメントとモデルリファレンスをご覧ください。価格は hop-base.com/pricing に掲載しています。