返回博客

AI 入门指南

OpenAI 兼容 API:base_url 是什么以及如何切换

OpenAI 兼容 API 接受与 OpenAI 相同的请求。更改 base_url、密钥和模型 id,你的代码就能向 CheapTokens 发出第一个请求。

作者:CheapTokens Team发布于 更新于 4 分钟阅读

切换到 OpenAI 兼容 API 时需要更改的三个值:base_url、API 密钥和模型 id
本页内容
  1. “OpenAI 兼容”是什么意思?
  2. 什么是 base_url?
  3. 你需要更改的三个值
  4. 用 Python 发出第一个请求
  5. 用 curl 发出同样的请求
  6. 你应该看到什么
  7. 费用是多少?
  8. 如果无法正常工作
  9. 后续步骤

OpenAI 兼容 API 是指接受与 OpenAI Chat Completions API 相同格式的请求、并以相同格式返回响应的 API。要把应用迁移到另一个提供商,通常只需改三个值:base_url(请求发往哪里)、API 密钥和模型 id。其余代码,包括消息列表和读取响应的方式,都保持不变。

本指南用通俗的语言解释这一概念,最后给出一个在 Python 和 curl 中向 CheapTokens 发出的可运行首次请求。关于 CheapTokens 的事实已对照其 2026 年 10 月 22 日的文档核实。

“OpenAI 兼容”是什么意思?#

API 是一套通过互联网与服务通信的规则(如果这个词对你来说很陌生,请先阅读你的第一个 API 请求是如何工作的)。OpenAI 的聊天格式已成为通用标准:许多提供商和工具接受相同的请求体,并返回相同的响应结构。这样的 API 被称为 OpenAI 兼容。

在实践中,这意味着在任何兼容提供商上,以下三件事都相同:

  • 请求: 一个 JSON 请求体,包含 model 字段和 messages 列表,其中每条消息都有 role(system、user 或 assistant)和 content。
  • 端点路径: /chat/completions,添加在基础 URL 之后。
  • 响应: 一个 JSON 对象,生成的文本位于 choices[0].message.content 中。

由于格式是共享的,官方 SDK 和许多应用都能与任何兼容提供商通信。它们只需要知道把请求发往哪里。

什么是 base_url?#

base_url 是每个请求的起始地址。SDK 会在其后加上调用的路径,从而构建完整地址。

部分 示例
base_url https://api.cheaptokens.dev/v1
SDK 添加的路径 /chat/completions
请求的完整地址 https://api.cheaptokens.dev/v1/chat/completions

因此,当你设置不同的 base_url 时,同一份代码会把同类型的请求发送到另一台服务器。CheapTokens 的基础 URL 是 https://api.cheaptokens.dev/v1。其 API 兼容 OpenAI Chat Completions 和 Anthropic Messages,一个预付费余额即可覆盖所有模型。

你需要更改的三个值#

值 是什么 从哪里获取
base_url API 的地址 https://api.cheaptokens.dev/v1
API 密钥 你用于 API 的秘密密码 你的 CheapTokens 账户。参见什么是 API 密钥以及如何安全存储它
模型 id model 字段中模型的准确名称 CheapTokens 文档

模型 id 值得注意。不同提供商给同一个模型分配不同的 id,因此来自其他服务的 id 在这里无法使用。请从 CheapTokens 文档中获取 id。目前可用的 id:

模型 模型 id 上下文 每次回答的最大输出
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8,192 tokens
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32,768 tokens
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8,192 tokens

DeepSeek-V4-Flash 每次回答最多返回 32,768 tokens,上下文为 380K;GLM-5.3-Flash 的上下文为 390K;MiniMax-M2.7 的上下文为 180K。三者都从同一余额计费,因此在它们之间切换只需更改模型 id。

用 Python 发出第一个请求#

安装 openai 包,然后把密钥存入环境变量,而不是写进代码:

bash
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"

现在看代码。与标准 OpenAI 示例的唯一区别是 base_url 参数、密钥和模型 id:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",   # 1. where requests go
    api_key=os.environ["CHEAPTOKENS_API_KEY"],   # 2. your CheapTokens key
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",                # 3. model id from the docs
    messages=[
        {"role": "system", "content": "You answer briefly."},
        {"role": "user", "content": "Explain base_url in one sentence."},
    ],
)

print(response.choices[0].message.content)

示例中的密钥是占位符:请把 YOUR_CHEAPTOKENS_KEY 替换为你自己的密钥,切勿把真实密钥提交到代码仓库。

如果你已有的应用从配置文件或环境变量读取设置,你完全不需要修改它的代码。找到名为 base URL、API base 或 endpoint 的字段,在那里填入同样的三个值即可。

用 curl 发出同样的请求#

curl 展示了 SDK 在幕后所做的工作:基础 URL 加上路径、Authorization 请求头中的密钥,以及一个 JSON 请求体。

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "user", "content": "Explain base_url in one sentence."}
    ]
  }'

你应该看到什么#

当一切设置正确时,Python 脚本会打印一段简短的文本回答,curl 会打印一个 JSON 对象。找到 choices 列表:回答的文本位于 choices[0].message.content 中。如果你看到了这些,说明你向 CheapTokens 发出的第一个请求成功了,可以继续开发你的真实应用了。

费用是多少?#

按 token 计费,输入和输出分别计数(参见输入 token 与输出 token)。例如,MiniMax-M2.7 目前每 1M 输入 token 收费 $0.05,每 1M 输出 token 收费 $0.15。下表始终显示所有模型的当前价格,没有高峰时段附加费。

模型 上下文 输入 $/1M 输出 $/1M OpenRouter 输入 OpenRouter 输出
GLM-5.3-Flash reasoning 390K $0.02 $0.04 $0.0413 $0.0758
DeepSeek-V4-Flash 380K $0.015 $0.10 $0.0475 $0.1568
MiniMax-M2.7 180K $0.05 $0.15 $0.30 $1.20

价格以每 100 万 token 的美元金额计算。OpenRouter 数据仅供参考,可能会有变动。

完整模型列表的价格也在 CheapTokens 定价页面上。

如果无法正常工作#

  • 身份验证错误(通常是 401): 密钥缺失、输入错误或包含多余空格。请检查环境变量是否在你运行脚本的同一个终端中设置。
  • “未找到”(通常是 404): 检查 base_url。它必须以 /v1 结尾,使用 SDK 时你不应自己添加 /chat/completions,否则路径会重复。
  • 未知模型: 从上表或文档中准确复制模型 id,包括大小写和斜杠前的部分。
  • 无法连接或超时: 参见常见连接错误及其修复方法。
  • 回答在句子中间被截断: 达到了 max_tokens 限制,详见为什么 AI 回答会在句子中间停止。

后续步骤#

第一个请求成功后,你可以添加Python 中的流式输出,把同样的三个值填入你的编辑器或 agent,或阅读如何解读 AI 模型名称。设置细节和完整模型列表见 CheapTokens 文档。