很多人第一次看到“OpenAI 兼容 API”,会以为它等于 OpenAI 官方 API。
其实不是。
更准确地说,它是一种“长得像 OpenAI 调用方式”的接口。你的代码还可以继续用 OpenAI SDK,但请求不一定发给 OpenAI,而是发给另一个支持相同调用格式的平台。
这件事的好处很直接:如果你原来的项目已经用了 OpenAI SDK,迁移到 Qwen、DeepSeek 等模型时,通常不用重写整套代码。
它不等于 OpenAI 官方,也不等于支持 GPT
这一点要先说清楚。
OpenAI 兼容 API 的意思是“接口格式兼容”,不是“模型一定来自 OpenAI”。
所以,一个平台可以支持 OpenAI SDK 的调用方式,但实际提供的是 DeepSeek、Qwen 或其他模型。
OneKeyModel 当前因为政策和接入原因,暂不支持 GPT、Claude、Gemini 等美国主流闭源模型。现在更适合先用 Qwen、DeepSeek 等可用模型跑真实任务。
如果你想了解俄罗斯用户接 AI API 前要考虑哪些现实问题,可以先看 AI API 接入清单。这篇只讲接口怎么迁移、怎么少改代码。
最常改的两个参数
很多迁移场景里,主要改两处:
api_key="your-api-key"
base_url="https://api.onekeymodel.com/v1"api_key 用来证明你是谁。 base_url 决定请求发到哪里。
模型则通过 model 参数选择,比如:
model="deepseek-chat"所以你可以把它理解成:SDK 还是熟悉的 SDK,请求入口换了,模型名换了。
Python 示例
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.onekeymodel.com/v1"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "把这段说明改写成自然的俄语文案"}
]
)
print(response.choices[0].message.content)这段代码最重要的不是“像 OpenAI”,而是迁移成本低。你不用重新研究一个完全陌生的 SDK,也不用把业务逻辑拆掉重写。
JavaScript 示例
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.onekeymodel.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-chat",
messages: [
{ role: "user", content: "Generate 5 short product titles in Russian." },
],
});
console.log(response.choices[0].message.content);如果你以前做过网页后台、Telegram bot、自动化脚本,这种写法会比较顺手。
你不用先写一个很大的封装。先让最短请求跑通,再决定要不要接入自己的项目。
换模型时改哪里
一般先看三个地方:
base_url:API 入口;api_key:你的密钥;model:你要调用的模型名。
比如今天用 deepseek-chat,后面平台增加更多模型后,你可能只需要把 model 换成新的可用模型名,再用同一套请求逻辑测试效果。
这也是 OpenAI 兼容接口的价值:业务代码尽量少动,模型可以逐步比较。
实际接入时,不建议一次改太多东西。先固定同一段输入,只改模型名,对比输出质量、速度和消耗。这样你才知道差别来自模型本身,而不是你的业务代码也一起变了。
messages 是什么
很多初学者第一次看 OpenAI SDK,会被 messages 绕一下。
你可以先简单理解成:这就是你发给模型的对话记录。
最常见的是:
messages=[
{"role": "user", "content": "帮我写一段产品介绍"}
]如果要给模型加一点背景,可以加 system:
messages=[
{"role": "system", "content": "你是一个会写自然俄语文案的编辑"},
{"role": "user", "content": "把这段中文说明改成俄语广告文案"}
]不要一开始就把 prompt 写得很复杂。先让模型完成最核心的任务,再慢慢调整语气、格式和约束。
常见坑
最常见的问题其实很普通:
base_url多写或少写/v1;- API Key 前后复制了空格;
- 模型名写错;
- 余额不足;
- 请求太长;
messages格式不对;- 流式输出和普通输出混用;
- 测试 Key 和正式 Key 混了;
- 代码里还写着旧平台的环境变量。
所以第一次接入时,不要直接放到复杂项目里。先用最短代码跑通一次,再接进真实流程。
如果报错,不要只看最后一句。通常错误里会告诉你是认证失败、模型不存在、余额不足、请求格式不对,还是触发了限制。
适合哪些工具和场景
OpenAI 兼容 API 特别适合这些情况:
- 原来已经用了 OpenAI SDK;
- 想把模型接进 Telegram bot;
- 想接 LangChain、Dify、LlamaIndex 等工具;
- 想给内部后台加 AI 功能;
- 想批量处理翻译、摘要、文案;
- 想比较 Qwen、DeepSeek 等模型效果。
如果你的目标是找 OpenRouter 替代方案,可以看 OpenRouter 替代方案文章。如果你已经决定接 API,这篇可以当作技术迁移的起点。
总结
OpenAI 兼容 API 不是一个很神秘的东西。它真正解决的是迁移成本:让你不用为了换模型,把原来的 SDK、工具和业务逻辑全部重写一遍。
对开发者来说,这意味着更快测试。 对团队来说,这意味着更少维护成本。 对内容和运营场景来说,这意味着 AI 更容易进入实际工作流。
先用一个简单请求跑通,再慢慢比较模型、控制成本、接入项目。这样比一上来追最复杂的方案更实在。