很多人第一次用 OpenAI API,会卡在三步:不知道 Key 在哪里创建、不知道怎么充值、拿到 Key 之后又不知道 Base URL 怎么填。本文用中商起航 AI 网关走一遍完整流程,并给出 Python、Node.js 和 curl 三种调用示例。
本文讲的是 API 按量计费,不是 ChatGPT Plus 订阅。两者不是一回事:Plus 是网页/App 的会员,API 是给程序调用的接口。
一、注册中商起航账号
打开 中商起航 AI 网关,点击注册,完成邮箱验证并登录。
注册后你会进入控制台。控制台里主要用到三个地方:
- API 密钥:创建和删除 Key。
- 钱包/充值:查看余额、充值。
- 用量日志:查看每次调用的模型、Token 和费用。
二、创建 API Key
进入「API 密钥」页面,点击新建:
- 名称:写清楚用途,例如
openai-api-测试、生产环境-后端。 - 额度:建议先设一个较低上限,跑通后再调整。
- 过期时间:测试 Key 可以设 7 天或 30 天。
- 保存后复制 Key。Key 通常以
sk-开头,只完整显示一次。
不要把 Key 发到群里、截图里或提交到 Git。怀疑泄露时,直接删除旧 Key,重新创建一个。
三、充值
在「钱包」页面选择充值方式,按提示完成支付。到账后,余额会显示在控制台。
如果你只是测试,先充一个小额即可。不同模型的单价差异很大,具体看 模型价格。建议先用便宜的小模型跑通,再切换到主力模型。
四、Base URL 怎么填
中商起航的 OpenAI 兼容接口地址是:
https://ai.zhongshangqihang.com/v1
注意:
- OpenAI SDK、Cursor、Chatbox、LobeChat、Dify 等 OpenAI 兼容工具,通常填
https://ai.zhongshangqihang.com/v1。 - 如果你用的工具要求填「API Base」「Base URL」「Endpoint」,都填上面这个地址。
- 不要漏掉
/v1,也不要在末尾多写/chat/completions,客户端会自己拼接。
五、用 curl 测试
先把 Key 放到环境变量里,避免命令历史泄露:
export OPENAI_API_KEY="sk-你的密钥"
export OPENAI_BASE_URL="https://ai.zhongshangqihang.com/v1"
然后调用:
curl "$OPENAI_BASE_URL/chat/completions" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5",
"messages": [
{"role": "user", "content": "用一句话解释什么是 API 网关"}
]
}'
如果返回 JSON 里有 choices,说明 Key 和 Base URL 都通了。模型名以 模型价格 当前展示为准;填错模型名通常会返回 model not found。
六、Python 调用
安装 OpenAI SDK:
pip install openai
示例:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://ai.zhongshangqihang.com/v1",
)
response = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "system", "content": "你是一个简洁的技术助手。"},
{"role": "user", "content": "解释一下什么是 Token"},
],
)
print(response.choices[0].message.content)
七、Node.js 调用
npm install openai
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://ai.zhongshangqihang.com/v1",
});
const response = await client.chat.completions.create({
model: "gpt-5",
messages: [{ role: "user", content: "写一个 JavaScript 防抖函数" }],
});
console.log(response.choices[0].message.content);
八、常见报错
| 报错 | 原因 | 处理 |
|---|---|---|
401 Unauthorized |
Key 错误、被删除或没带 Bearer | 重新复制 Key,检查请求头 |
404 Not Found |
Base URL 少了 /v1 或路径重复 |
只填到 /v1 |
model not found |
模型名不对或未开通 | 从价格页复制模型名 |
insufficient quota |
余额不足 | 充值后重试 |
429 |
并发/频率超限 | 降低并发,稍后重试 |
| 返回空内容 | 参数或模型不支持 | 检查 messages 格式和模型能力 |
九、安全与成本建议
- 一人一 Key:团队里不要共用一把 Key,出问题无法定位。
- 设置额度:测试 Key 设低额度,生产 Key 按预算设置。
- 不把 Key 写进前端:浏览器里的 Key 一定会被看到,前端调用必须经过你自己的后端。
- 生产环境用环境变量/密钥管理:不要把 Key 写在代码或 Dockerfile 里。
- 定期轮换:重要 Key 建议 90 天轮换一次。
- 看用量日志:按模型、项目、成员拆分,找出异常消耗。
十、API 和 ChatGPT Plus 有什么区别
| 对比项 | ChatGPT Plus | OpenAI API |
|---|---|---|
| 使用方式 | 网页/App 聊天 | 程序调用 |
| 计费 | 固定订阅 | 按 Token 用量 |
| 适合谁 | 个人日常使用 | 开发者、产品、团队 |
| 额度 | 套餐限制 | 充值余额 |
| 能否集成到产品 | 不能 | 可以 |
如果你只是自己聊天,订阅更简单;如果你要把模型接进产品、脚本、Agent 或工具,API 更合适。
常见问题
Key 创建后还能再看到吗?
通常只在创建时完整显示一次。没保存就只能删除重建。
一个 Key 可以调用多个模型吗?
可以。Key 是身份凭证,模型在请求参数里指定。具体可用模型看价格页。
为什么调用成功但余额没变?
可能有延迟,或者用了免费额度/缓存。以用量日志和账单为准。
可以把 Key 给同事用吗?
不建议。给同事单独建 Key,方便限额、审计和停用。
下一步
如果还没有账号,先 注册中商起航 AI 网关,创建一个测试 Key,用 curl 跑通第一条请求。跑通后再看 模型价格 选择主力模型。
相关阅读:
