一、简介与适用场景
OpenAI 是 GPT 系列模型的原厂,也是事实上的行业接口标准制定者——今天几乎所有平台宣称的「兼容 OpenAI 协议」,对齐的都是它这套请求与响应格式。因此哪怕你最终不用 OpenAI,先把它的接入方式吃透,后面换任何一家供应商都只是改两个字符串的事。
需要先说清楚一件事:OpenAI 没有长期免费额度。历史上给新账号的试用金早已取消,现在必须先绑定支付方式并预充值才能调用。所以本篇的定位不是「薅免费额度」,而是「把标准姿势讲明白」。如果你的目标是零成本起步,请直接看硅基流动、智谱或 Google AI Studio 那几篇。
适合看这篇的情况:需要 GPT 系列的特定能力(如结构化输出、Responses API)、团队已有海外支付渠道、或者你想搞清楚「OpenAI 兼容」到底兼容了什么。
二、注册与获取 Key
- 打开 OpenAI Platform 注册账号,注册环节需要手机号验证。
- 进入 Billing 页面绑定支付方式并充值,不充值的账号调用任何模型都会直接返回额度错误。
- 进入 API keys 页面点击创建,给 Key 起一个能看出用途的名字,例如
local-cherry-studio。 - Key 只在创建时完整显示一次,务必当场复制保存;关掉弹窗后平台只保留前后几位,找不回来只能重新建。
安全提醒:这串 sk- 开头的字符串等价于你的钱包。不要写进前端代码,不要提交到 Git 仓库,不要贴进任何在线工具的输入框(包括本站——本站所有工具都在你自己的浏览器里运行,但养成习惯比相信承诺更可靠)。
三、Base URL 与鉴权
- Base URL:
https://api.openai.com/v1 - 鉴权方式:HTTP 请求头
Authorization: Bearer sk-xxxxxxxx - 对话端点:在 Base URL 后拼
/chat/completions
最常见的低级错误是把 Base URL 填成带结尾斜杠的 https://api.openai.com/v1/,客户端拼接后变成双斜杠,部分网关会直接返回 404。填地址时一律不带结尾斜杠。
如果你所在的网络无法直连 api.openai.com,需要自备网络方案;这属于网络层问题,换任何客户端都绕不过去。
四、客户端接入示例
以 Cherry Studio 为例,其他客户端(NextChat、LobeChat、Chatbox)的字段名基本一致:
- 打开「设置 → 模型服务 → OpenAI」。
- API 密钥填你刚才复制的
sk-字符串。 - API 地址填
https://api.openai.com/v1。 - 点击「检查」按钮,返回成功即表示打通。
- 在模型列表里勾选
gpt-4o-mini之类的低价模型做首次测试,别一上来就用最贵的。
五、代码示例
curl 快速验证:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "用一句话解释什么是 API"}]
}'
Python(官方 SDK):
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://api.openai.com/v1",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "用一句话解释什么是 API"}],
)
print(resp.choices[0].message.content)
Node.js:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.openai.com/v1',
});
const resp = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: '用一句话解释什么是 API' }],
});
console.log(resp.choices[0].message.content);
六、常见错误排查
| 错误码 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| 401 | Incorrect API key provided | Key 拼错、被撤销,或复制时带上了空格换行 | 重新复制 Key,检查首尾空白;必要时在后台重建一个 |
| 429 | insufficient_quota | 账户余额为零或未绑定支付方式 | 到 Billing 页面充值;这不是限流,重试一万次也没用 |
| 429 | Rate limit reached | 短时间请求数或 token 数超过账号档位 | 加指数退避重试;长期方案是提升账号用量等级 |
| 404 | model_not_found | 模型名拼错,或该模型未对你的账号开放 | 先调 /v1/models 列出可用模型,再照抄 id |
| 400 | context_length_exceeded | 输入加输出超过模型上下文窗口 | 裁剪历史消息,或改用上下文更长的模型 |
| 连接超时 | 请求长时间无响应后失败 | 网络无法直连 api.openai.com | 检查网络链路;换客户端无法解决 |