OpenAI SDK 怎么改 base_url?一行代码接入 API 中转的完整示例(Python/Node/curl,2026)
更新于 2026-07-10
📌 本文要点
- 结论先行:把 base_url 改成 https://api.yunwu.cloud/v1、换上本站 Key,其余代码零改动
- 参数名区别:Python 是 base_url(下划线),Node 是 baseURL(驼峰),写错不报错但请求走不到
- 建议动作:接新项目前先用 curl 验通,一次排除网络、Key、模型名三个变量
- 适合人群:想把现有 OpenAI 代码切到中转的开发者
搜"openai sdk base_url 修改"的朋友,基本都是想把请求切到 API 中转上。先把结论放前面:改一行就够了。base_url 就是 SDK 往哪台服务器发请求的地址,默认指向 api.openai.com,把它改成本站的 https://api.yunwu.cloud/v1,再把 Key 换成本站签发的 Key,其余代码一个字都不用动。下面给出 Python、Node.js、curl 三份可以直接复制的示例。
base_url 是什么?为什么只改它就能接中转
OpenAI 的 SDK 里,所有方法(chat.completions、embeddings 等)最终都是往 base_url + 路径 发 HTTP 请求。本站接口按 OpenAI 兼容格式实现,所以把地址一换,SDK 完全感知不到区别——同一套代码还能调 gpt-4o、gemini-2.5-pro、deepseek-v3、claude-sonnet-4-5-20250929 等 200+ 个模型,只需改 model 字段。
动手前的两步准备:
- 到注册页注册账号,注册即送免费测试额度、自动到账,每日签到还能续领(以页面显示为准),已有账号直接登录;
- 进控制台点"令牌"菜单,创建一个 API Key(
sk-开头,可以按项目分别建 Key、设限额),复制备用。
Python 示例(openai 库 1.x)
from openai import OpenAI
client = OpenAI(
base_url="https://api.yunwu.cloud/v1", # 就是这一行
api_key="sk-你的Key",
)
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "用一句话解释 base_url 是什么"}],
)
print(resp.choices[0].message.content)
如果你还在用 1.0 之前的旧版 openai 库,写法是 openai.api_base = "https://api.yunwu.cloud/v1",但建议升级到 1.x 版本,后面函数调用、流式的接口都更顺。
Node.js 示例(openai 4.x)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.yunwu.cloud/v1", // 注意是 baseURL,URL 三个字母大写
apiKey: "sk-你的Key",
});
const resp = await client.chat.completions.create({
model: "deepseek-v3",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
一个我自己踩过的坑:Python 里参数叫 base_url(下划线),Node 里叫 baseURL(驼峰)。写错的话 SDK 不报错、直接忽略,请求照旧打到默认地址,然后你就会看到一个莫名其妙的 401——先检查这个参数名,能省半小时。

curl 示例(不装任何库,先验证连通)
curl https://api.yunwu.cloud/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的Key" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "ping"}]
}'
返回正常 JSON(有 choices 字段)就说明通了。建议接任何新项目前都先跑一遍这条 curl,把网络、Key、模型名三个变量一次排除。
流式、函数调用这些参数要不要改?
不用。兼容的是整个 OpenAI 接口协议,不只是地址:
- 流式输出:
stream=True照常用,逐 token 返回; - 函数调用 / 工具调用:
tools、tool_choice原样传; - JSON 模式、temperature、max_tokens 等参数全部一致。
换模型只改 model 一个字段。gpt-4o、gemini-2.5-pro、deepseek-v3 这类直接写名字;Claude 系列注意要带日期后缀,比如 claude-sonnet-4-5-20250929,不带后缀会报模型不存在。完整可用模型和分组倍率见模型价格表。
顺带一提,Claude Code、Cursor 这类客户端也能接:Claude Code 通用做法是设环境变量 ANTHROPIC_BASE_URL=https://api.yunwu.cloud 和 ANTHROPIC_AUTH_TOKEN=你的Key(具体以文档教程为准);Cursor 在设置里改 API 地址与 Key 即可,界面细节以客户端当前版本为准。
计费是纯按量:没有月费、没有最低消费,余额按 token 用量扣。充值走人民币,约 0.5 元 = 1 美元 token 额度,最低 1 元起充,充得多有阶梯折扣(以充值页面实际显示为准)。第一次建议先充几块钱试试水,跑通、看完日志再决定加多少;对公或大额充值可以走客服支持。

FAQ:改 base_url 的常见问题
改了 base_url 安全吗?怎么验证请求真的走了中转?
请求打到哪、扣了多少,控制台"日志"菜单里每一条调用都有明细(用了哪个模型、扣了多少 token),对得上就说明走的是本站。另外本站的 Key 只在本站接口有效,建议单独建 Key、按项目设限额,不要和其他平台混用。
报错 401 Unauthorized 是怎么回事?
多半是 Key 的问题:误用了 OpenAI 那边的 Key、复制时少了字符、或者 Node 里 baseURL 拼写错了导致请求打回默认地址。去"令牌"页重新生成一个,用上面的 curl 单测一次。
base_url 结尾要不要带 /v1?
在 OpenAI SDK 里要带:写 https://api.yunwu.cloud/v1,SDK 会自动拼上 /chat/completions。而 Claude Code 的 ANTHROPIC_BASE_URL 不带 /v1,两者别搞混。
一个 Key 能同时调 GPT、Claude、Gemini 吗?
可以。同一个 base_url、同一个 Key,换 model 字段就行,这正是中转最省事的地方。不同模型有分组倍率,单价看价格页。
免费测试额度怎么拿?
注册后自动到账,每日签到可以续领,具体额度以页面显示为准。测试额度跑完再考虑充值,充值步骤见下面的相关阅读。
总结就一句话:改一行 base_url,其余照旧。先用 curl 验通,再把项目切过来,日志页对一遍账就能放心跑了。
相关阅读:《云雾API怎么充值》 | 首页 | 注册领免费额度
