codex配置deepseek base url是接入过程中最容易踩坑的一步。很多同学拿到了DeepSeek的API Key,也在codex里改了配置,结果请求要么发到了OpenAI官方地址,要么直接返回404。问题的根源基本都集中在base url的写法上,比如末尾要不要带斜杠、要不要拼接v1路径、环境变量放的位置对不对。这篇文章把完整流程和排错思路一次讲清楚。

一、准备工作:获取API Key并确认接口地址
开始配置之前,先去DeepSeek开放平台创建一个API Key,保存好这个密钥,它只在创建时展示一次。DeepSeek的接口兼容OpenAI的Chat Completions格式,官方给的base url是https://api.deepseek.com,也可以写成带v1的形式https://api.deepseek.com/v1,两者指向同一个服务,注意这里的v1与模型版本无关,纯粹是路径别名。
拿到Key之后建议先用curl做一次连通性测试,确认Key本身没问题,再动手改codex的配置。如果curl都通不了,那问题在Key或者网络层面,改配置也没用。测试命令可以参考下面的写法,正常情况下会返回一段JSON响应,包含模型生成的回复内容。
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的密钥" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "你好"}]
}'这里要特别注意,DeepSeek目前提供两个主力模型:deepseek-chat对应V3系列对话模型,deepseek-reasoner对应推理模型。配置codex时model字段必须写这两个名字之一,写成deepseek-v3或者deepseek-r1这类名字会直接报模型不存在的错误。
二、修改codex配置文件并设置base url
codex CLI的配置文件一般放在用户主目录下的~/.codex/config.toml,如果文件不存在就手动创建一个。打开文件后,把模型提供方切换到DeepSeek,核心就是配置provider和base url。一个能直接用的最小配置如下:
# ~/.codex/config.toml model = "deepseek-chat" model_provider = "deepseek" [model_providers.deepseek] name = "DeepSeek" base_url = "https://api.deepseek.com/v1" env_key = "DEEPSEEK_API_KEY" wire_api = "chat"
配置里的env_key表示codex会从环境变量里读取密钥,所以还需要把Key写进环境变量。以macOS或Linux为例,编辑~/.bashrc或者~/.zshrc,添加一行export DEEPSEEK_API_KEY="sk-你的密钥",保存后执行source ~/.zshrc让变量生效。Windows用户可以在系统设置里添加环境变量,或者在PowerShell中用$env:DEEPSEEK_API_KEY="sk-你的密钥"临时设置。
关于base url的写法有几个细节值得强调。第一,如果填https://api.deepseek.com/v1,codex会在后面自动拼接/chat/completions,最终请求路径是完整的;第二,如果你用的是中转服务或者第三方代理,地址以服务商给出的为准,注意确认对方是否要求带v1路径;第三,URL末尾不要多加斜杠,某些网关对/v1/和/v1的处理不一致,多一个斜杠有时会返回404。
三、常见报错排查与验证方法
配置完成后运行codex命令,随便提一个问题测试。如果一切正常,模型会通过DeepSeek返回结果。如果不正常,可以按照下面这张表快速定位问题:
| 报错信息 | 可能原因 | 解决办法 |
|---|---|---|
| 401 Unauthorized | API Key错误或环境变量未生效 | 检查Key是否复制完整,重新source配置文件 |
| 404 Not Found | base url路径拼接错误 | 尝试加或去掉末尾的v1,检查多余斜杠 |
| Model not found | model名称写错 | 改成deepseek-chat或deepseek-reasoner |
| 连接超时 | 网络不通或代理配置问题 | 检查代理环境变量,确认能访问api.deepseek.com |
遇到404时有个简单的判断技巧:看报错里打印的完整请求地址。如果显示的还是https://api.openai.com开头的地址,说明codex根本没有读取到你的provider配置,多半是配置文件路径不对,或者TOML格式有语法错误导致整个文件解析失败。TOML对格式要求比较严格,键值对的等号两边要有空格,字符串必须用双引号包裹,注释用井号开头,写错一个字符都可能导致配置整体失效。
还有一种情况是环境变量只在当前终端会话生效,换一个终端窗口就失效了。可以在新窗口里执行echo $DEEPSEEK_API_KEY验证一下,如果输出为空,说明变量没有持久化,回到shell配置文件里确认那行export确实存在,并且没有拼写错误。Windows用户如果用PowerShell临时变量,关闭窗口后同样会丢失,建议写入系统环境变量一劳永逸。
最后提一个实用建议:如果你想同时保留OpenAI和DeepSeek两套配置,可以把OpenAI的provider配置也写在同一个TOML文件里,通过修改顶部的model_provider字段一键切换,不需要反复注释和取消注释配置块,用起来会方便很多。
codex配置deepseekbase url设置DeepSeek API修改时间:2026-09-07 11:09:14