从 Anthropic 迁移
设置一个环境变量,就能让 Anthropic SDK 指向 OneProvider。附 Python 和 Node 示例、模型 ID 替换,以及快速验证方法。
如果您的代码现在调用的是 api.anthropic.com,整个迁移只需改一个环境变量。现有的请求和响应逐字节一致。
全部模型、功能与价格 面向 AI 智能体的文档索引:https://oneprovider.dev/docs/llms.txt 开始之前:从个人中心获取密钥 打开您的个人中心:Telegram 机器人 @oneprovider_robot (“个人中心”)或 app.oneprovider.dev 。点击“签发密钥”,为它命名(例如此客户端的名称)并设置消费限额,然后复制密钥。充值也在同一个地方进行。详细了解个人中心与密钥 。 哪些会变,哪些不变
请求 schema、响应结构、流式事件,以及您已在使用的 SDK,都不需要任何改动。唯一的区别是数据发往哪里:
| 项目 | Anthropic | OneProvider |
|---|---|---|
| Base URL | https://api.anthropic.com | https://api.oneprovider.dev |
| 认证请求头 | x-api-key | x-api-key 或 Authorization: Bearer |
| 版本请求头 | anthropic-version: 2023-06-01 | anthropic-version: 2023-06-01 |
| 请求 schema | Anthropic Messages API | 一致 |
| 响应 schema | Anthropic Messages API | 一致 |
| 流式事件 | SSE: message_start, content_block_delta... | 一致,无缓冲 |
Prompt caching (cache_control) | 原生 | 原生,直接透传 |
| 模型 | 带日期的旧别名 | 自动生成的 Claude 白名单,见模型 |
| 计费 | 银行卡,后付费,按月结算 | 加密货币充值,预付,不过期 |
只改环境变量的迁移
如果您的代码从环境变量读取凭据(理应如此),只需做这一处改动:
bash# Before
export ANTHROPIC_API_KEY=sk-ant-...
# After
export ANTHROPIC_API_KEY=sk-... # OneProvider key
export ANTHROPIC_BASE_URL=https://api.oneprovider.dev 官方的 Anthropic Python SDK 和 Node SDK 都会读取 ANTHROPIC_BASE_URL,无需其他代码改动。
Python:显式写法
python# Before
from anthropic import Anthropic
client = Anthropic()
# After
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://api.oneprovider.dev",
) Node:显式写法
ts// Before
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
// After
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://api.oneprovider.dev",
}); 替换模型 ID
Anthropic 原生接口提供“模型”页面上列出的当前 Claude 模型 ID。如果您的代码引用了较旧的 Anthropic 别名(claude-3-5-sonnet、claude-3-opus-20240229 等),会收到 400 invalid_request_error,请替换为当前的标准 ID:
| 旧别名 | 改用 |
|---|---|
claude-3-5-sonnet*, claude-3-7-sonnet*, claude-sonnet-3-5 | claude-sonnet-5-5 |
claude-3-opus*, claude-opus-3 | claude-opus-5-5 |
claude-3-haiku*, claude-3-5-haiku*, claude-haiku-3-5 | claude-haiku-5-5 |
验证切换结果
bash# Should print the current Claude model ids
curl -s https://api.oneprovider.dev/v1/models \
-H "x-api-key: $ANTHROPIC_API_KEY" | jq '.data[].id'
# Should return HTTP 200 and a short text message
curl -s https://api.oneprovider.dev/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-5-5","max_tokens":32,"messages":[{"role":"user","content":"hi"}]}' 先让两者并行运行 如果想谨慎迁移:先保留您的 Anthropic 客户端一个版本的部署周期。把 1% 的流量发往 OneProvider,对相同提示词的响应做对比,然后在几天内逐步调高比例。结构完全一致,这件事做起来很简单。 快速解答
该使用哪个 base URL?
Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。
如何进行身份验证?
将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。
在哪里获取密钥?
在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。
401、404 和 429 是什么意思?
401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。
流式输出为什么会中断或被重置?
VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。
以上都没解决,该去哪里咨询?
请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。
最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot