很多 AI 客户端和 SDK 都支持 OpenAI-compatible API。
它的好处是:你不一定要为每个模型、每个供应商单独改代码。只要服务端兼容 OpenAI 的接口格式,客户端通常只需要改两个地方:
api_keybase_url
这篇文章用一个最小可跑通的方式,演示如何在代码里接入一个 OpenAI-compatible API 网关,并用 diegeai.com 做示例。
本文只讨论合法授权的 API 网关、自有服务或团队内部统一网关接入,不涉及绕过限制、盗用账号或任何违规用途。
为什么要用 OpenAI-compatible API 网关
在实际开发里,你可能会遇到这些情况:
- 项目里想统一管理多个模型
- 想让前端、后端、脚本都用同一套调用方式
- 想在不同模型之间切换,但不想每次重写 SDK 代码
- 想集中查看用量、余额和调用日志
- 想先用一个客户端快速验证接口是否可用
这时,一个兼容 OpenAI 接口格式的网关会比较方便。
从代码侧看,它通常还是这类调用方式:
client.chat.completions.create(...)
只是 base_url 指向你自己的网关地址。
先准备 3 个参数
开始之前,先准备好:
| 参数 | 示例 | 说明 |
|---|---|---|
| API Key | sk-xxxxxxxx | 后台创建的密钥 |
| Base URL | https://diegeai.com | API 网关地址 |
| Model | gpt-4o-mini | 后台支持的模型 ID |
这里最容易出错的是模型名。
模型名不是展示名称,而是接口里真实使用的模型 ID。建议直接从后台模型列表复制。
用 curl 先测接口
在写 SDK 代码之前,建议先用 curl 做一次最小测试。
curl https://diegeai.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-d '{
"model": "你的模型 ID",
"messages": [
{
"role": "user",
"content": "请回复 OK"
}
]
}'
如果能正常返回内容,说明这几个关键点大概率是通的:
- Key 可用
- 地址可用
- 模型名可用
- 账号有余额或额度
如果 curl 都不通,先不要急着排查 SDK,先看后面的常见错误。
Node.js 示例
先安装依赖:
npm install openai
然后写一个最小示例:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: "https://diegeai.com",
});
const completion = await client.chat.completions.create({
model: "你的模型 ID",
messages: [
{
role: "user",
content: "请用一句话介绍你自己",
},
],
});
console.log(completion.choices[0].message.content);
运行时把 Key 放到环境变量里:
API_KEY="sk-xxxxxxxx" node index.js
开发时不要把真实 Key 写进代码仓库。
Python 示例
安装依赖:
pip install openai
示例代码:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("API_KEY"),
base_url="https://diegeai.com",
)
response = client.chat.completions.create(
model="你的模型 ID",
messages=[
{
"role": "user",
"content": "请回复 OK",
}
],
)
print(response.choices[0].message.content)
运行:
API_KEY="sk-xxxxxxxx" python main.py
常见错误排查
1. 401 Unauthorized
一般是 Key 的问题。
常见原因:
- API Key 填错
- Key 前后有空格
- Key 被删除或过期
- 当前 Key 没有额度
排查顺序:
重新复制 Key -> 检查余额 -> 检查 Key 是否启用
2. 404 Not Found
一般是 Base URL 或路径的问题。
如果你使用 diegeai.com,示例里的 Base URL 直接写:
https://diegeai.com
不要把完整接口路径写进 SDK 的 base_url。
3. model not found
一般是模型 ID 写错。
注意这两个不是一回事:
GPT-4o Mini
gpt-4o-mini
前者更像展示名,后者才更像接口里的模型 ID。
4. quota exceeded
一般是余额或额度问题。
先去后台看:
- 余额
- 用量记录
- 当前 Key 的额度
- 当前分组是否有限制
5. timeout
超时不一定是接口坏了,也可能是:
- 模型响应慢
- 上游拥堵
- 网络波动
- 上下文太长
可以先用一句很短的问题测试:
请回复 OK
短问题能返回,长问题超时,通常就不是 Key 或地址的问题。
一个实用的接入顺序
我一般建议按这个顺序排查:
- 后台创建 API Key
- 复制后台支持的模型 ID
- 用
curl测一条短消息 - 再接入 Node.js 或 Python SDK
- 最后接入 Cherry Studio、Cursor 等客户端
这样能把问题拆开。
如果一上来就直接接客户端,遇到报错时很难判断到底是 Key、模型、地址,还是客户端配置问题。
diegeai.com 的接入信息
如果你只是想找一个 OpenAI-compatible API 网关做测试,可以看一下 diegeai.com。
接入信息:
官网:https://diegeai.com
Base URL:https://diegeai.com
QQ群:1049792539
适合先做这些测试:
- OpenAI SDK 是否能跑通
- Cherry Studio 是否能接入
- Cursor / 其他客户端是否能配置
- 模型名、余额、调用日志是否清楚
建议第一次只小额测试。确认模型、计费、稳定性都符合预期后,再放到长期使用的项目里。
总结
OpenAI-compatible API 接入并不复杂,核心就是三个点:
API Key 正确
Base URL 正确
模型 ID 正确
如果你正在排查接口问题,先用 curl 做最小请求,再接 SDK。
这样能快速判断问题到底出在网关、模型、Key,还是客户端配置上。