AI 入门指南
OpenAI 兼容 API:base_url 是什么以及如何切换
OpenAI 兼容 API 接受与 OpenAI 相同的请求。更改 base_url、密钥和模型 id,你的代码就能向 CheapTokens 发出第一个请求。

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。 - 端点路径:
/,添加在基础 URL 之后。chat/ completions - 响应: 一个 JSON 对象,生成的文本位于
choices[0].中。message. content
由于格式是共享的,官方 SDK 和许多应用都能与任何兼容提供商通信。它们只需要知道把请求发往哪里。
什么是 base_url?#
base_url 是每个请求的起始地址。SDK 会在其后加上调用的路径,从而构建完整地址。
向右滚动表格 →
| 部分 | 示例 |
|---|---|
base_url |
https:/ |
| SDK 添加的路径 | / |
| 请求的完整地址 | https:/ |
因此,当你设置不同的 base_url 时,同一份代码会把同类型的请求发送到另一台服务器。CheapTokens 的基础 URL 是 https:/。其 API 兼容 OpenAI Chat Completions 和 Anthropic Messages,一个预付费余额即可覆盖所有模型。
你需要更改的三个值#
向右滚动表格 →
| 值 | 是什么 | 从哪里获取 |
|---|---|---|
base_url |
API 的地址 | https:/ |
| API 密钥 | 你用于 API 的秘密密码 | 你的 CheapTokens 账户。参见什么是 API 密钥以及如何安全存储它 |
| 模型 id | model 字段中模型的准确名称 |
CheapTokens 文档 |
模型 id 值得注意。不同提供商给同一个模型分配不同的 id,因此来自其他服务的 id 在这里无法使用。请从 CheapTokens 文档中获取 id。目前可用的 id:
向右滚动表格 →
| 模型 | 模型 id | 上下文 | 每次回答的最大输出 |
|---|---|---|---|
| GLM-5.3-Flash | zai- |
390K | 8,192 tokens |
| DeepSeek-V4-Flash | deepseek- |
380K | 32,768 tokens |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8,192 tokens |
DeepSeek-V4-Flash 每次回答最多返回 32,768 tokens,上下文为 380K;GLM-5.3-Flash 的上下文为 390K;MiniMax-M2.7 的上下文为 180K。三者都从同一余额计费,因此在它们之间切换只需更改模型 id。
用 Python 发出第一个请求#
安装 openai 包,然后把密钥存入环境变量,而不是写进代码:
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"现在看代码。与标准 OpenAI 示例的唯一区别是 base_url 参数、密钥和模型 id:
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_ 替换为你自己的密钥,切勿把真实密钥提交到代码仓库。
如果你已有的应用从配置文件或环境变量读取设置,你完全不需要修改它的代码。找到名为 base URL、API base 或 endpoint 的字段,在那里填入同样的三个值即可。
用 curl 发出同样的请求#
curl 展示了 SDK 在幕后所做的工作:基础 URL 加上路径、Authorization 请求头中的密钥,以及一个 JSON 请求体。
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]. 中。如果你看到了这些,说明你向 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 文档。



