ChatGPT 网页版模型路由:sunyifeisb-art/dsh-llm-chatgpt-web

前言

DeepSeek Harness(DSH)的插件生态允许开发者把各种模型接入同一个路由体系。在模型推理场景中,很多团队希望复用已有的 ChatGPT 网页套餐额度,而不是另外申请 OpenAI API 或 Codex 额度。但 ChatGPT 网页后端需要浏览器会话中的 Sentinel/PoW 令牌与 Cloudflare 放行,无法直接用 HTTP 调用。sunyifeisb-art/dsh-llm-chatgpt-web 解决了这个问题:它通过 DevTools Protocol 驱动本地 Chrome,在 DSH 里接入一个名为 chatgpt-web 的模型路由,把 ChatGPT 网页端的额度用起来。

是什么

这是 sunyifeisb-art 维护的一个 DSH 插件,属于「模型推理」分类。它为 DeepSeek Harness 添加了一个名为 chatgpt-web 的模型路由,每次调用该路由时,插件会在本地 Chromium 浏览器中驱动一个已登录的 chatgpt.com 会话,从网页端获取回复。推理消耗的是 ChatGPT 网页套餐额度,而不是 OpenAI API 额度或 Codex 额度。插件不依赖 API key、不需要代理服务器、也不需要账号共享。

核心功能

模型路由

插件会在 DSH 中插入一条模型路由配置:

- id: llm-chatgpt-web
  name: dsh-llm-chatgpt-web
  config: {}

在模型选择器中,路由 id 为 chatgpt-web(可通过配置项 provider 修改)。

浏览器会话驱动

插件使用 DevTools Protocol(CDP)驱动一个真实浏览器会话(Chrome、Edge 或 Chromium 均可)。会话使用插件专用的浏览器 profile(默认为 ~/.dsh/chatgpt-web/chrome-profile),不干扰日常浏览器。浏览器按需在后台启动(macOS 使用 open -g -j),关闭后自动重新拉起。仅在需要登录时,插件会将窗口移到屏幕内并激活。

临时对话与对话模式

默认使用临时对话,不会写入 ChatGPT 历史记录。对话模式有两个选项:

  • continue:每个 DSH 会话维护一个临时对话,后续调用只发送增量(新的用户消息或工具结果),上下文由网页端维护。
  • fresh:每次调用都开启一个新的临时对话。

工具调用

ChatGPT 网页端没有函数调用 API。插件要求模型在 fenced JSON 块中输出工具调用:

{"name": "bash", "arguments": {"command": "ls"}}

插件将其转换为 DSH 的 tool-call,将工具结果粘贴回下一轮对话。提示词明确禁止模型使用自身的容器或代码解释器执行命令,若模型声称执行了某操作但未使用工具调用,会被拒绝并重试。

配置项

Key Default Meaning
provider chatgpt-web 路由 id,用于模型选择器
displayName ChatGPT 网页版 在 DSH 中显示的名称
transport web fake = 离线自测流
chromePath Google Chrome(macOS 路径) 浏览器可执行文件路径
userDataDir ~/.dsh/chatgpt-web/chrome-profile 专用浏览器 profile(登录态保存在此)
debuggingPort 9333 专用浏览器的 CDP 端口
windowMode hidden visible / hidden(窗口移出屏幕,后台启动)/ headless(ChatGPT 会屏蔽,不推荐)
temporaryChat true 使用临时对话(不写入 ChatGPT 历史)
conversationMode continue continue = 会话内保持一个临时对话,只发增量;fresh = 每次新建
reasoningEffort high 每次调用前对齐网页端「思考力度」滑块(low / medium / high)
webModel empty 可选,强制使用网页端模型(如 GPT-6),空则使用页面当前选择
maxPromptChars 60000 提示词字符预算
emulateTools true 用文本协议模拟函数调用(见上文)
responseTimeoutMs 600000 单次回复最大等待时间(毫秒)

安装与启用

在 DeepSeek Harness 中安装插件:

dsh plugin --profile <name> add /absolute/path/to/dsh-llm-chatgpt-web

或者在 Harness 内部使用插件管理器:

plugin_manager install_bundle <absolute path>

安装完成后,插件会插入一条模型路由配置(见上文)。

典型用法

首次登录

  1. 在模型选择器中选中 ChatGPT 网页版(路由 id 为 chatgpt-web),发送任意内容。
  2. 插件会在本地启动一个专用 Chrome 窗口,停留在 ChatGPT 登录页,并提示 web 登录尚未完成。
  3. 在该窗口中完成登录(账号密码或 Google 登录均可)。登录态保存在插件专用的 profile 中,不会写入日常浏览器。
  4. 回到 DSH,再次发送内容,浏览器会在后台启动并获取回复。

日常调用

在 DSH 中选择 chatgpt-web 路由,发送对话。插件会按需启动浏览器,从网页端获取回复。如果浏览器被手动关闭,插件会在后台自动重新拉起。

工具调用示例

在对话中,模型可返回如下 JSON:

{"name": "bash", "arguments": {"command": "ls"}}

插件将其解析为工具调用,在下一轮将工具结果粘贴回对话。

已知限制

  • 每个 DSH 会话一条临时对话:每个会话独占一个浏览器标签,整个会话期间使用同一条临时对话。后续调用只发送增量(新的用户消息 / 工具结果),上下文由网页端维护。不同会话相互隔离。可通过 conversationMode: fresh 恢复每轮新建对话。
  • 串行调用:只有一个浏览器标签,模型调用会排队。
  • 每轮重发上下文:使用临时对话,没有服务器端的历史延续,每轮都需要重新发送任务 + 工具 + 最近历史。reasoningEffort=high 时一步通常需要 10–40 秒。
  • 仅支持文本:暂不支持图片输入。
  • 依赖 chatgpt.com DOM:当 OpenAI 更新网页布局时,选择器可能需要调整。失败时会自动保存截图到 ~/.dsh/chatgpt-web/logs/screenshots/。
  • 非安全沙箱:插件以本地用户权限运行,使用的是你自己的 ChatGPT 会话。安装前建议阅读源码。

适用场景与注意

该插件适合希望复用 ChatGPT 网页套餐额度、在本地浏览器环境中完成推理的场景。如果你已有稳定的 OpenAI API 额度或 Codex 额度,可能不需要这个插件。需要注意:

  • 插件以当前 DSH 进程的权限运行,它使用的是你自己的 ChatGPT 账户和会话。
  • 安装前建议查看源码与许可证(MIT)。
  • 插件依赖 chatgpt.com 的页面结构,若 OpenAI 更新网页设计,可能需要同步更新选择器。

结尾

这个插件把 ChatGPT 网页端接进了 DSH 的模型路由体系,让你在本地浏览器中复用网页套餐额度完成推理,同时避免了 API key、代理和账号共享的复杂性。目录页与源码仓库如下:

  • 目录页:https://www.skillhub.cn/plugins/sunyifeisb-art/dsh-llm-chatgpt-web
  • GitHub:https://github.com/sunyifeisb-art/dsh-llm-chatgpt-web
羽毛球分组比赛记分
小程序二维码

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

Xiaoye