dsh-llm-chatgpt-oauth:利用 ChatGPT Plus/Pro 订阅使用 OpenAI Codex 模型

前言

DeepSeek Harness(DSH)支持通过插件扩展模型推理能力。开发者在使用 OpenAI Codex 系列模型时,通常需要申请并持有 OPENAI_API_KEY。如果已拥有 ChatGPT Plus 或 Pro 订阅,通过 OAuth 方式直接调用模型可以省去申请 API Key 的流程。下面介绍 dsh-llm-chatgpt-oauth 插件,它通过 pi-ai 的 openai-codex 路由,将 ChatGPT 的订阅能力接入 DSH。

插件定位

这是一个独立社区项目,由用户 zhangxiubo 维护,基于 MIT 许可证开源。

它的核心作用是注册一个名为 openai-codex 的 DeepSeek Harness 提供商路由。它利用 chatgpt.com/backend-api 进行 OAuth 认证,允许 DSH 直接使用 pi-ai 的当前 Codex 模型目录(例如 gpt-5.4、gpt-5.5 等),而无需 OPENAI_API_KEY。

核心功能

该插件集成了以下能力:
* 模型目录注册:注册 OpenAI Codex 模型目录,供 DSH 选用。
* OAuth 认证:通过 ChatGPT 官方后端 API 进行认证。
* 无 Key 运行:完全不需要配置 OPENAI_API_KEY。
* 消息转换:继承 Harness 的消息转换、工具调用、推理级别、重放元数据和附件处理能力。
* 令牌管理:自动刷新 OAuth 访问令牌,并支持私密、原子的凭证持久化。
* CLI 工具:提供专用的设备代码登录命令 dsh-llm-chatgpt-auth login。
* 引导登录:支持从现有的 Codex CLI 登录状态引导(可选)。
* 设置集成:在 DSH 的 Models 设置页面显示 OpenAI Codex (ChatGPT) 提供商行,并支持操作选项的实时、基于设置的更新。

安装

安装前请确保环境满足依赖要求(见下文)。安装通过 DSH 的插件管理命令完成:

dsh plugin --profile web add 'github:zhangxiubo/dsh-llm-chatgpt-oauth#v0.1.0'

安装后需要重启 dsh web 进程以加载配置。

使用

安装完成后,可以通过命令行进行认证,或在 DSH 的设置页面选择模型。

认证操作

使用插件提供的认证命令管理凭证:

dsh-llm-chatgpt-auth login
dsh-llm-chatgpt-auth status
dsh-llm-chatgpt-auth logout

配置默认模型

在 ${DSH_HOME:-~/.dsh}/settings.yaml 中设置默认模型,指定使用 openai-codex 提供商:

agent-default-model:
  provider: openai-codex
  model: gpt-5.4
  reasoningEffort: high

高级配置

插件支持在 settings.yaml 中通过 llm-chatgpt-oauth 命名空间进行配置,例如关闭 Codex CLI 引导或设置超时:

llm-chatgpt-oauth:
  displayName: OpenAI Codex (ChatGPT)
  streamIdleTimeoutMs: 300000
  bootstrapFromCodexCli: false

依赖与环境

运行此插件需要满足以下环境条件:

  • Node.js:版本需 >=22.19.0。
  • 包管理器:命令行需安装 pnpm。
  • DSH 版本兼容:DeepSeek Harness 需兼容 @deepseek-ai/dsh-llm-pi-ai@0.1.0-rc.7。
  • Pi-AI 版本兼容:需 @earendil-works/pi-ai@0.82.1。
  • 账户权限:需拥有访问 OpenAI Codex 模型的 ChatGPT 账户。

注意事项

  • 非官方项目:这是一个独立社区项目,不是 OpenAI、DeepSeek 或 pi-ai 的官方包。
  • 安全机制:不将公共 api.openai.com 路由转换为订阅访问,也不抓取浏览器会话。
  • 模型限制:模型可用性和使用限制由 ChatGPT 账户控制,可能与插件状态独立变化。
  • 版本锁定:插件对 Harness 和 pi-ai 的 peer 版本进行了精确固定。升级这些固定版本前,应通过完整套件和选定的实时测试。
  • 私有包:该包在 npm 上被标记为 private,通过 GitHub Releases 分发,不直接发布到 npm registry。

资源

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜