EasyAPI问答
前往 EasyAPI

OpenAI 兼容 API 是什么?为什么只改 base_url 就能切换模型?

EasyAPI 团队整理

直接回答

OpenAI 兼容 API 指的是请求路径、参数和返回结构都沿用 OpenAI 接口规范的模型服务。因为 SDK 只是按这套规范拼 HTTP 请求,所以把 base_url 指向兼容的网关、换上对应的 API Key 和模型名,同一份代码就能调用别家的模型。

OpenAI 兼容 API,是指一个模型服务对外暴露的接口与 OpenAI 的接口规范保持一致:同样的路径(如 /v1/chat/completions)、同样的请求字段(model、messages、stream 等)、同样的返回结构(choices、usage 等)。

这套格式已经成为大模型调用的通用约定,很多厂商和接入平台都提供兼容接口。对开发者来说,这意味着换模型不必换 SDK、不必重写调用代码。

关键要点

  • OpenAI SDK 本质上是一个 HTTP 客户端,base_url 决定请求发往哪台服务器。
  • 切换到兼容服务需要改三项:base_url、api_key、model。
  • EasyAPI 的 OpenAI 兼容 Base URL 是 https://token.easyapi.com/v1,注意结尾包含 /v1。
  • 兼容的是通用的对话接口格式,不保证厂商独有参数和特殊接口都能原样使用。
  • 视频生成这类长耗时任务使用独立的异步接口,不走对话接口。

为什么只改 base_url 就能用

调用 client.chat.completions.create(...) 时,SDK 做的事情很简单:

  1. 把 base_url 和路径 /chat/completions 拼成完整地址。
  2. 把 api_key 放进请求头 Authorization: Bearer <API Key>。
  3. 把 model、messages 等参数序列化成 JSON 发出去。
  4. 按约定的结构解析返回的 JSON。

SDK 并不关心对面是谁。只要对面的服务认得这个路径、认得这些字段、按同样的结构返回,调用就能成功。接入平台在网关里把这个标准请求转给对应的模型,再把结果包装成同样的结构返回,这就是「改 base_url 就能切换」的原因。

用 curl 看得更清楚,整个请求里和服务方相关的只有三处:

# ① 地址:base_url + /chat/completions
curl https://token.easyapi.com/v1/chat/completions \
  -H "Authorization: Bearer $EASYAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash-1017",
    "messages": [{"role": "user", "content": "你好"}]
  }'
# ② 密钥:Authorization 头   ③ 模型:model 字段

把 model 换成 qwen3.8-max,其余不变,请求就会交给另一家的模型处理。

三项配置分别是什么

配置作用在 EasyAPI 上的取值
base_url请求发往的服务地址https://token.easyapi.com/v1
api_key身份凭证,决定用谁的额度控制台令牌管理中创建的 sk- 开头的 Key
model具体调用哪个模型从模型广场复制的模型 ID,区分大小写

Python 里的完整写法见 用 OpenAI Python SDK 调用国产大模型要怎么改代码。

兼容不等于完全相同

「兼容」只说明接口格式一致,下面几种情况仍需要单独留意:

  • 参数支持因模型而异。 例如部分新模型不接受 max_tokens,需要改用 max_completion_tokens;推理强度、工具调用、JSON 输出等能力也不是每个模型都支持。
  • 厂商独有功能不在兼容范围内。 专有参数、文件管理、微调等接口,通常只有官方接口提供。
  • 不同模态接口不同。 图片生成用图片接口,视频生成是「提交任务 → 轮询 → 下载」的异步流程,见 国内怎么调用 Seedance 2.5 视频生成 API。
  • 模型行为不会因此变得一样。 同一段提示词在不同模型上的输出风格、上下文长度和速度都不同,切换后需要重新验证效果。

EasyAPI 的 GET /v1/models 会返回每个模型支持的参数、能力位和可调用端点,切换前可以先查一下。

常见问题

base_url 后面要不要加 /v1?

要加。EasyAPI 的 OpenAI 兼容 Base URL 是 https://token.easyapi.com/v1,SDK 会在它后面拼接 /chat/completions。漏掉 /v1 是接口返回路径错误时很常见的原因。

用了 OpenAI 兼容 API,是不是就只能调 OpenAI 的模型?

不是。「兼容」说的是接口格式,不是模型来源。在 EasyAPI 上用这套格式可以调用 DeepSeek、Qwen、Kimi、GLM、豆包等模型,只要把 model 写成对应的模型 ID。

除了 Python,其他语言也能这样切换吗?

可以。Node.js、Go、Java 等语言的 OpenAI SDK,以及直接发 HTTP 请求,原理都相同:改地址、改密钥、改模型名。

换了 base_url 之后报 401 是怎么回事?

通常是密钥和地址不匹配。API Key 是由具体平台签发的,把 base_url 指向 EasyAPI 后,必须使用 EasyAPI 控制台创建的 Key。排查方法见 调用大模型 API 返回 401 / 429 / 5xx 分别该怎么排查。

小结

OpenAI 兼容 API 是一套被广泛采用的接口约定,SDK 只负责按约定发请求,所以改 base_url、api_key 和 model 就能切换服务与模型。但兼容只覆盖通用格式,独有参数和不同模态的接口仍要对照文档确认,详见 EasyAPI 文档。

一个 API Key,按 OpenAI 兼容格式调用多家模型

按量计费,用量逐条可查。价格与当前可用模型以模型广场实时显示为准。