本教程将详细介绍如何将阿里云百炼(DashScope)通义千问 Qwen API 接入 OpenAI Codex。通过配置 config.toml,你可以使用 Qwen 模型来驱动 Codex 的自动化编码和分析任务。
核心参数概览
在开始配置前,请确保你已拥有阿里云百炼账号并获取了 API Key。
- Base URL:
https://dashscope.aliyuncs.com/compatible-mode/v1 - 环境变量名:
DASHSCOPE_API_KEY - 推荐模型:
qwen-plus(或qwen-max,qwen-turbo) - 配置文件路径:
~/.codex/config.toml
第一步:设置环境变量
为了安全起见,API Key 建议通过环境变量注入,而不是直接硬编码在配置文件中。
#### 1. Windows 系统设置
打开 PowerShell,运行以下命令设置永久系统变量:
``powershell
setx DASHSCOPE_API_KEY "你的真实-API-Key"
`
*注意:设置后需要重启终端或 Codex App 才能生效。*
#### 2. 使用 .env 文件(推荐)
如果你使用 Codex Desktop 或 VS Code 扩展,建议将变量写入 Codex 的专用环境配置文件:
- 文件路径: C:\Users\<你的用户名>\.codex\.env
- 内容:
`bash
DASHSCOPE_API_KEY="你的真实-API-Key"
`
第二步:配置 config.toml
编辑你的 ~/.codex/config.toml 文件。如果文件不存在,请在 .codex 目录下新建一个。
将以下内容添加或修改到文件中:
`toml
设置全局默认模型
model = "qwen-plus"
指定使用的提供商 ID,需与下方定义的 [model_providers.xxx] 一致
model_provider = "dashscope"
定义阿里云百炼提供商
[model_providers.dashscope]
name = "Alibaba DashScope"
必须使用兼容 OpenAI 的 V1 地址
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
对应刚才设置的环境变量名
env_key = "DASHSCOPE_API_KEY"
关键配置:指定 Codex 以响应流格式交互
wire_api = "responses"
阿里云百炼不需要 OpenAI 的官方登录态
requires_openai_auth = false
`
第三步:关键字段详细说明
- base_url
: 阿里云百炼提供了 OpenAI 兼容接口。请务必保留 /v1后缀,但不要在末尾添加/chat/completions。 - wire_api = "responses"
: 这是接入国产模型最关键的参数。它告诉 Codex 使用通用的 Responses API 协议,从而兼容非 OpenAI 原生的接口。 - model
: 填入百炼控制台中支持的模型标识符。 - qwen-plus
: 性能与速度平衡(推荐)。 - qwen-max
: 推理能力最强,适合复杂架构分析。 - qwen-turbo
: 速度极快,适合简单的代码生成。
第四步:验证配置
配置完成后,请彻底退出并重启 Codex CLI 或 App。运行以下命令验证连接:
`bash
codex "请介绍一下当前工作区的目录结构,并确认你当前使用的模型名称。不要修改任何文件。"
`
如果遇到问题,请检查:
- Base URL: 确保没有多写或少写路径(末尾应为 .../v1
)。
2. API Key: 在终端输入 echo $env:DASHSCOPE_API_KEY (Windows) 确认变量是否已正确读取。
3. 网络: 确认本机可以正常访问 dashscope.aliyuncs.com。
4. 会话可见性: 如果切换 provider 后看不到旧会话,这是正常现象,Codex 会根据不同的 provider 隔离会话元数据。
进阶:配置多模型 Profile
如果你希望在不同任务间切换模型,可以在 config.toml 中定义 profiles:
`toml
[profiles.qwen-max]
model = "qwen-max"
model_provider = "dashscope"
[profiles.qwen-turbo]
model = "qwen-turbo"
model_provider = "dashscope"
`
使用时通过 --profile 参数切换:
`bash
codex --profile qwen-max "请帮我重构这个复杂的算法模块。"
``