返回博客

工具与集成指南

将 Qwen Code 连接到 CheapTokens:环境变量和 settings.json

通过三个环境变量或一个 settings.json 条目,将 Qwen Code 指向 OpenAI 兼容 API:基础 URL、完整模型 ID 和保存在 git 之外的密钥。

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

带有 OPENAI_API_KEY、OPENAI_BASE_URL 和 OPENAI_MODEL 变量的 Qwen Code 终端
本页内容
  1. 安装 Qwen Code
  2. 方式 1:三个环境变量
  3. 方式 2:settings.json 和放在 git 之外的密钥
  4. 一次编码会话的成本
  5. 其他可尝试的模型
  6. 如果 Qwen Code 无法连接

Qwen Code 可以连接到自定义的 OpenAI 兼容端点,因此将它连接到 CheapTokens 需要三个值:基础 URL https://api.cheaptokens.dev/v1、你的 API 密钥,以及完整的模型 ID,例如 deepseek-ai/DeepSeek-V4-Flash-0731。将它们导出为 OPENAI_API_KEY、OPENAI_BASE_URL 和 OPENAI_MODEL,或者写入 ~/.qwen/settings.json。这两种方式均来自 Qwen Code 认证文档(页面最后更新于 2026 年 10 月 22 日)。

设想一个长会话:智能体读取十几个文件、编辑三个文件、重新运行测试。每一步都会重新发送上下文,因此你会反复为输入付费。这就是为什么按 token 余额计费的便宜模型适合终端智能体,也是为什么下面的配置值得花十分钟。

安装 Qwen Code#

Qwen Code 需要 Node.js 22 或更高版本。项目 README(github.com/QwenLM/qwen-code)列出了几种安装方式;其中两种:

安装 Qwen Code

npm

bash
npm install -g @qwen-code/qwen-code@latest

Homebrew

bash
brew install qwen-code

使用 qwen 启动它。文档还介绍了 /auth → 自定义提供商,用于手动连接代理或不支持的提供商。下面的两种方式已逐行写出,因此从其中一种开始。

方式 1:三个环境变量#

最快的方法。在项目目录中打开终端并运行:

bash
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.cheaptokens.dev/v1"
export OPENAI_MODEL="deepseek-ai/DeepSeek-V4-Flash-0731"
qwen

密钥是占位符;请从 CheapTokens 仪表板粘贴你自己的密钥。当你通过环境变量设置所有内容时,导出 OPENAI_API_KEY 也是告诉 Qwen Code 使用 OpenAI 兼容认证的方式。OPENAI_MODEL 有一个别名,QWEN_MODEL。

有一个细节容易让人出错:模型 ID。使用 CheapTokens 文档中的完整 ID。价格旁边显示的短名称 deepseek-v4-flash-0731 不被 API 接受,而且不同提供商的 ID 各不相同。

哪个变量起什么作用?将它们对应起来:

配对

将每个变量与其作用对应起来

  • OPENAI_API_KEY你的 CheapTokens 密钥;导出它会选择 OpenAI 兼容认证
  • OPENAI_BASE_URLQwen Code 发送请求的端点
  • OPENAI_MODEL发送给 API 的模型 ID
  • QWEN_MODELOPENAI_MODEL 的别名

导出的变量在你关闭终端之前一直有效。要保留配置,请使用下一种方式。

方式 2:settings.json 和放在 git 之外的密钥#

假设你和团队共享仓库,而且没人希望密钥出现在配置文件中。那么就在 ~/.qwen/settings.json 中描述模型,并将密钥保存在单独的文件中。

json
{
  "modelProviders": {
    "openai": [
      {
        "id": "deepseek-ai/DeepSeek-V4-Flash-0731",
        "name": "DeepSeek-V4-Flash (CheapTokens)",
        "baseUrl": "https://api.cheaptokens.dev/v1",
        "description": "DeepSeek-V4-Flash through CheapTokens",
        "envKey": "CHEAPTOKENS_API_KEY"
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731" }
}

有四个字段起关键作用:

  • id 是发送给 API 的模型 ID,因此必须是完整 ID。
  • model.name 必须匹配某个 id 值,否则 Qwen Code 没有可选择的项。
  • security.auth.selectedType 设置为 "openai" 会选择 OpenAI 兼容方式。
  • envKey 指定保存密钥的变量名。它是可选的,默认为 OPENAI_API_KEY。

密钥本身放入 .qwen/.env,文档推荐用它保存机密信息,并且该文件不纳入 git:

bash
CHEAPTOKENS_API_KEY=sk-your-api-key

有理由优先选择它而不是 settings.json 中的 env 块:来自 env 的值优先级最低,而且包含密钥的文件很容易被意外提交。关于如何安全保存密钥的更多内容,请参阅安全存储 API 密钥。

环境变量及其对应的 settings.json 配置:密钥、基础 URL、模型 ID
三个值各自放在哪里:左侧是环境变量,右侧是 settings.json

启动后,/model 会显示已配置的模型,并允许你切换。要以特定模型启动,请运行 qwen --model "deepseek-ai/DeepSeek-V4-Flash-0731"。

一次编码会话的成本#

终端智能体的输入量很大:每一步都会携带它到目前为止收集的文件和历史记录。假设一个 40 步的任务,每步有 30,000 个输入 token 和 1,000 个输出 token。那就是 40 × 30,000 = 1,200,000 个输入 token 和 40 × 1,000 = 40,000 个输出 token。以下是按实时价格计算整个任务的费用:

模型 每次请求 40 次请求 OpenRouter,40 次请求
GLM-5.3-Flash $0.00064 $0.0256 $0.0526
DeepSeek-V4-Flash $0.00055 $0.022 $0.0633
MiniMax-M2.7 $0.0017 $0.066 $0.408

每次请求 30,000 个输入 token 和 1,000 个输出 token。每 100 万 token 的价格为当前价格,会随我们的资费一同变动;OpenRouter 列显示相同工作负载的参考价格。

将输入和输出合计,对于表中的每个模型,CheapTokens 都比 OpenRouter 便宜。对于这种循环,DeepSeek-V4-Flash 很合适:380K 上下文,单次回答最多 32,768 个输出 token,任何时段价格相同,所有模型共用一个余额。你自己的数字会有所不同,所以请拖动滑块:

成本计算器

你使用终端智能体的一天

每次请求的输入 token 数: 25,000 · 每次请求的输出 token 数: 800 · 每日请求数: 120

模型每天每月
GLM-5.3-Flash$0.0638$1.92
DeepSeek-V4-Flash$0.0546$1.64
MiniMax-M2.7$0.164$4.93

价格见定价页面。如果你想在另一个智能体中查看用量,Cline 的费用是多少会讲解同样的计算。

其他可尝试的模型#

切换只是更改 ID,仅此而已。从模型页面或从 GET /v1/models 获取:

  • zai-org/GLM-5.3-Flash:390K 上下文,每次回答最多 8,192 个输出 token,总价低于 OpenRouter。
  • MiniMaxAI/MiniMax-M2.7:180K 上下文,每次回答最多 8,192 个输出 token,总价低于 OpenRouter。

更改 OPENAI_MODEL,或者向 modelProviders.openai 添加第二个条目,并用 /model 在它们之间切换。

如果 Qwen Code 无法连接#

  • 未选择认证类型。 仅使用环境变量时,必须导出 OPENAI_API_KEY。使用 settings.json 时,检查 selectedType 是否为 "openai"。
  • 找不到模型。 model.name 必须与 id 逐字符一致,并且 ID 必须是完整的网关 ID。
  • 401。 密钥缺失或错误。如果你使用 envKey,请确保该变量确实存在于 .qwen/.env 或你的 shell 中。
  • 404。 检查基础 URL 是否以 /v1 结尾,以及 ID 是否有拼写错误。完整说明见 API 401 或 404:密钥、基础 URL 或模型 ID 错误。
  • 某个变量似乎被忽略。 settings.json 中 env 里的值优先级最低,因此在其他地方设置的变量会胜出。

其他终端智能体的配置遵循同样的模式,例如 OpenCode 和 Aider。从密钥到首次请求的所有其他内容,都在 CheapTokens 文档中。