DSH 对接 OpenAI Codex(ChatGPT 订阅)完整教程

其他杂项62字数 3907阅读13分1秒阅读模式

LocalSync2026-09-04

DSH 对接 OpenAI Codex(ChatGPT 订阅)完整教程

无需第三方插件、无需 API Key 充值,直接用你的 ChatGPT Plus / Pro 订阅在 DSH 里跑 OpenAI Codex 全家桶模型(GPT-5.4/5.5/5.6 Luna/Sol/Terra、5.3 Codex Spark),27.2 万上下文,方案已经实测验证。

一、方案概览

DSH(DeepSeek Harness)是一个本地 AI 工作台,所有能力以插件形式加载。其中 pi-ai(LLM 路由服务)从内置版本开始就自带 openai-codex provider,专门对接 ChatGPT 官方订阅:

  • 端点https://chatgpt.com/backend-api(走 /codex/responses
  • 认证:OAuth 设备码登录(Device Code Flow)
  • 模型:GPT-5.4 / GPT-5.5 / GPT-5.6 Luna / Sol / Terra、GPT-5.3 Codex Spark 等
  • 上下文:约 27.2 万 token

所以不需要安装任何第三方插件或桥接服务,要做的只有三件事:

  1. settings.yaml 里启用 openai-codex provider 路由
  2. 配置代理(ChatGPT 官方域名有国家/地区限制,必须走代理)
  3. 用设备码完成一次登录,把凭证写入 ~/.dsh/.credentials.yaml

下面逐步来。


二、前置条件

项目 要求
ChatGPT 订阅 Plus 或 Pro 任意一档均可(必须是订阅账号,纯免费账号拿不到 Codex 凭证)
网络 能访问 chatgpt.com / auth.openai.com(国内需代理)
本地代理 已有一个可用的 HTTP 代理,例如 127.0.0.1:1080(本教程以此为例)
DSH 版本 建议使用较新版本(已验证 rc.8 系可用)
本机环境 Windows(PowerShell)+ Node.js 已安装(登录脚本是 Node 写的)

注意:OpenAI 官方对来自受限国家/地区的请求会返回 HTTP 403,所以代理这一步不是可选项,而是硬性要求。


三、第一步:配置代理环境变量(关键,否则 403)

DSH 的 Node 进程默认直连,直连 chatgpt.com 会被 403 国家限制挡下。必须设置用户级环境变量并重启 DSH。

以 Windows 为例,在 PowerShell(管理员或普通用户均可,要写用户级环境变量)执行:

[Environment]::SetEnvironmentVariable("NODE_USE_ENV_PROXY", "1", "User")
[Environment]::SetEnvironmentVariable("HTTP_PROXY",  "http://127.0.0.1:1080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:1080", "User")

NODE_USE_ENV_PROXY=1 是让 Node 官方 fetch 走环境变量代理的关键开关,少了它即使设了 HTTP_PROXY 也不生效。

设置完 完全退出并重启 DSH 桌面端,让新环境变量生效。


四、第二步:在 settings.yaml 启用 openai-codex 路由

打开 DSH 配置文件 ~/.dsh/settings.yaml~ 即用户主目录,如 C:\Users\你的用户名\.dsh\settings.yaml),找到 llm-pi-ai: 段,在其 providers: 下加入:

llm-pi-ai:
  providers:
    openai-codex:
      displayName: OpenAI Codex(ChatGPT 订阅)

说明:

  • 空配置即继承内置 catalog:你不需要写 baseUrl、不需要写模型列表,留空的 openai-codex:(或只加个 displayName)就会自动继承 DSH 内置的完整定义。
  • 该配置热生效,无需重启(配置文件有 watcher 监听)。

五、第三步:设备码登录,写入凭证

DSH 桌面端的设置界面本身没有 OAuth 登录入口,所以用脚本完成设备码登录。官方流程三步:请求设备码 → 浏览器授权 → 轮询换 token 并写入凭证

推荐使用配套脚本(位于 ~/.dsh/scripts/login-chatgpt.js),它一条命令覆盖全流程。

5.1 请求设备码

cd ~/.dsh/scripts
node login-chatgpt.js request

输出类似:

{
  "deviceAuthId": "xxxx-xxxx",
  "userCode": "ABCD-EFGH",
  "intervalSeconds": 5,
  "verificationUri": "https://auth.openai.com/codex/device",
  "expiresInSeconds": 900
}

记住其中的 deviceAuthIduserCode

5.2 浏览器完成授权

  • 打开 https://auth.openai.com/codex/device
  • 输入上面返回的 userCode(如 ABCD-EFGH
  • 用你的 ChatGPT Plus/Pro 订阅账号登录并确认授权
  • 设备码有效期约 15 分钟,超时需重新 request

5.3 轮询换 token 并写凭证

在同一个终端继续执行:

node login-chatgpt.js poll <deviceAuthId> <userCode>

脚本会:

  1. 每 5 秒轮询一次授权状态
  2. 授权完成后换取 access/refresh token
  3. 从 JWT 里提取 chatgpt_account_id
  4. 把凭证写入 ~/.dsh/.credentials.yamlrecords.llm-pi-ai/openai-codex 节点(写入前自动备份一份 .bak-chatgpt

看到 LOGIN_SUCCESS 即成功。凭证文件写入后 chokidar 热加载,无需重启 DSH。

备选方案:如果只拿到设备码,也可以用 PowerShell 版 ~/.dsh/scripts/login-chatgpt.ps1,它接收 -DeviceAuthId-UserCode 参数做同样的轮询+写凭证。

5.4 验证凭证

node login-chatgpt.js verify

看到 RECORD_OK accountId=... 且 expires 还没过期,就说明凭证有效。


六、第四步:在 DSH 里使用 Codex 模型

登录完成后:

  1. 打开 DSH,进入 设置 → 模型
  2. 在 provider 列表里选择 OpenAI Codex(ChatGPT 订阅)
  3. 选一个模型(GPT-5.4 / 5.5 / 5.6 Luna/Sol/Terra / 5.3 Codex Spark 等)
  4. 新建会话对话,验证模型能正常回复

如果设置页没有该 provider 卡片,重启一次 DSH 即可。


七、常见问题排查

现象 原因 解决
请求返回 HTTP 403 Node 进程直连被 OpenAI 国家/地区限制 确认已设 NODE_USE_ENV_PROXY=1 + HTTP(S)_PROXY,并重启 DSH
登录时提示「账号不是 ChatGPT 订阅」 用了免费账号 / token 里没有 chatgpt_account_id 换 Plus/Pro 订阅账号
设备码 15 分钟过期 授权超时 重新 request 获取新码
设置页没有 Codex 卡片 provider 未启用 / 进程没重启 检查 settings.yamlproviders.openai-codex;重启 DSH
token 过期 access token 有有效期 重新走一遍登录流程(脚本已支持 refresh 字段,可复用)
代理不起作用 只设了 HTTP_PROXY 没设开关 必须同时有 NODE_USE_ENV_PROXY=1

八、进阶:协议细节(给想深入了解的人)

  • 认证端点https://auth.openai.com/api/accounts/deviceauth/usercode(请求设备码)、.../token(轮询)、https://auth.openai.com/oauth/token(换 token)
  • 验证页https://auth.openai.com/codex/device
  • 模型端点https://chatgpt.com/backend-api/codex/responses,OpenAI 要求请求体为 input 数组,且需带 store: falsestream: true
  • 凭证存储~/.dsh/.credentials.yaml,节点结构为 records.llm-pi-ai/openai-codex,类型 kind: grant,payload 为 { type: oauth, access, refresh, expires, accountId }
  • 无需任何第三方插件:一切均由 DSH 内置 pi-aiopenai-codex provider 完成

九、总结

一句话:开代理 + 启用内置 provider + 设备码登录,三步就能在 DSH 里用上 ChatGPT 订阅的 Codex 模型,全程不花一分 API 钱、不装任何插件。

核心记忆点:

  1. settings.yaml 里加一行 openai-codex:(空配置即继承内置定义,热生效)
  2. 用户级环境变量 NODE_USE_ENV_PROXY=1 + HTTP(S)_PROXY=127.0.0.1:1080,重启 DSH(403 关键)
  3. ~/.dsh/scripts/login-chatgpt.js 完成设备码登录,凭证热加载进 ~/.dsh/.credentials.yaml
  4. 设置→模型 里选 OpenAI Codex 即可开聊

需要代理才能访问 ChatGPT 官方服务,请自备合规网络环境。

 
  • 本文由 asdfasd 发表于 2026-09-0421:22:36
  • 转载请务必保留本文链接:http://wp.fangfa.me/other-note/6b0621725225.html