跳到正文

从其他平台迁移

只改三项配置,从 OpenAI、OpenRouter 或 Anthropic API 迁到 HopBase。

迁移只改三项:Base URL、密钥,必要时再改模型 ID。请求体、流式处理和错误处理代码保持不变。

要改什么

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 密钥一把 OpenRouter 密钥调所有模型Anthropic 密钥在「API 密钥」创建的 sk-…,可包含 1~10 个分组
模型 IDgpt-5.5openai/gpt-5.5、anthropic/claude-sonnet-5claude-sonnet-5不带厂商前缀,按 GET /v1/models 返回值原样填写: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 分组的密钥;每个请求按服务该模型的分组计费。模型有重叠的分组(如 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 没有这条路径:请按上一节改用 Anthropic SDK 和 Claude 分组密钥。其他系列(Gemini、GLM、通义千问、DeepSeek、Kimi、Grok)继续用 OpenAI SDK,密钥要包含各系列所在的分组。

不支持的功能

你可能在用的在 HopBase 上
通过 /v1/chat/completions 或 /v1/responses 调 Claude返回 404。请改用 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 K3只支持 Chat Completions——Kimi K3
Embeddings、语音转写、Files、Batch、Assistants、微调、内容审核接口不提供,这些路径返回 404
一把密钥调所有模型一把密钥最多可包含 10 个分组、可以跨平台,前提是分组之间模型不重叠(「GPT 官方直连(Azure)」与 Codex 分组、「GPT Image 全系」混用除外,见上文)
OpenRouter 的模型候补列表(models)、provider 路由、:online / :free 这类模型后缀不支持,删掉后只传一个模型 ID

完整端点列表见 Base URL 与协议。

迁移后检查

列出密钥可用的模型

用新密钥调 GET https://api.hop-base.com/v1/models,只使用响应里出现的 ID。

发一个小请求

让模型「只回复 ok」,确认返回 200。404 通常是模型不在这把密钥的任何分组里,或 Base URL 用错了协议——见错误码与重试。

查这把密钥还能花多少

GET https://api.hop-base.com/v1/usage 返回这把密钥可用的余额,字段说明见账户与目录 API。

下一步