← 返回列表
⚠ 装前注意
DSH Web 插件:展开英文思考块即时呈现中文译文,不改动任何会话原文。
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/19 · 已提供中文文档
综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Eyeing0721/dsh-cot-en2cn未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 2 天前真实安装成功
- 是什么
- dsh 原生插件 · ui
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 7 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-cot-en2cn(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 01:59:28
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-cot-en2cn DeepSeek Harness(DSH)的 Web 插件。模型用英文“思考”时,展开那个「思考」块,中文译文直接出现在原文下方;原文一个字节都不改。 +-- 思考 ----------------------------------------------------------------- | Let me check whether the settings service is mounted before calling | register on it, otherwise the row would throw. | | | 中文译文 · deepseek/deepseek-chat [重新翻译] [复制] [收起] | | 我先确认 settings 服务是否真的挂载了,否则注册这一行会抛错。 +------------------------------------------------------------------------ 为什么需要它 在使用 DeepSeek、GLM、Gemini 等推理模型时,模型经常输出大段英文思维链(Chain of Thought)。对于中文母语用户,逐字阅读长篇英文思考过程非常耗费精力。 dsh-cot-en2cn 专为解决这个问题设计: - 不修改任何会话数据:原文保持原样,只在浏览器界面渲染一层译文面板。 - 不浪费 Token:折叠的思考块不翻译;原文本来是中文直接跳过;已翻译内容双端缓存。 - 零运行时依赖:不引入任何第三方 npm 包,仅使用 Node.js 内置模块。 系统要求 - DSH >=0.1.0-rc.5 - Node.js >=20 安装与生效 从 GitHub 安装(推荐) dsh plugin --profile web add github:Eyeing0721/dsh-cot-en2cn 国内网络如果卡在下载那一步,先给当前终端设好代理再执行: $env:HTTPS_PROXY = 'http://127.0.0.1:7897' 从本地目录安装(开发 / 自用) dsh plugin --profile web add /path/to/deepseek-cot-en2cn 注意:使用本地目录(link 方式)安装时,源目录不可删除或移动,否则插件会失效。 安装完成后,重启 dsh web,刷新浏览器页面即可生效。 卸载 dsh plugin --profile web remove dsh-cot-en2cn 卸载后,配置文件仍会保存在 storages 目录下,不会丢失。 实际行为与使用方式 1. 界面交互:展开任意「思考」块,中文译文直接渲染在思考原文正下方。译文左侧带有一条竖线,顶部小字清晰展示所用模型、是否命中缓存以及耗时。右上角提供三个操作按钮:重新翻译、复制、收起。 2. 触发机制: - 处于折叠状态的思考块绝不翻译,不产生模型调用。 - 展开思考块时,若模型仍在流式输出,默认等待其思考结束后再翻译,期间显示“模型还在思考,结束后自动翻译…”。 - 原文为中文时直接跳过,不发起请求。 3. 分块与缓存:长文本会自动按段落、换行或句子边界分块(默认 3000 字符/块)并逐块缓存。服务端默认缓存 600 条,浏览器端同步缓存。二次展开或刷新页面均不会重复调用模型。 4. 控制面板:进入 设置 → 插件 → 「CoT 英文转中文」 即可打开配置面板。面板内包含运行状态卡片(当前模型路由、缓存命中数、调用次数、最近一次调用耗时、最近一次错误、配置文件路径)、基础开关、模型选择(提供“拉取模型列表”与“用默认模型”按钮)、高级参数调整、清空缓存、恢复默认,以及一个可以直接贴英文进行效果测试的“试译”文本框。 设置项 配置文件路径:$DSH_HOME/storages/cot-en2cn/config.json(不放在 settings.yaml 中,不依赖 schema 库)。手动修改该文件是安全的,所有配置项在载入时都会经过校验并夹紧至合法范围。 | 界面上的名字 | 默认值 | 含义 | |---|---|---| | 启用 CoT 中文翻译 | 开 | 总开关。关掉后所有译文面板立即消失,原文不受影响。 | | 展开时自动翻译 | 开 | 关掉后每块思考需要手动点「翻译这段思考」。 | | 思考过程中也翻译 | 关 | 模型还在流式输出时就翻译(会重复调用模型,更费 token)。 | | Provider / 模型 | 空 | 留空 = 跟随 DSH 默认模型。两者要么都填、要么都留空。翻译是纯体力活,建议选便宜快的小模型。 | | 关闭思考(推荐) | 开 | 把翻译请求走 DSH 的辅助请求通道(purpose: session-title),让这次调用不产生思考 token。注意:只有 DeepSeek 官方适配器认这个映射;用 pi-ai 之类 OpenAI 兼容中转时这一项等于空操作。 | | 目标语言 | 简体中文 | 还可选 繁體中文 / English / 日本語。 | | 单块字符数 | 3000 | 超过就分块翻译,逐块缓存。调小更稳(不容易被 max-tokens 截断),但请求数变多。 | | 并发请求数 | 2 | 同时进行的模型请求数。 | | 单次超时 | 120 秒 | 单次模型请求的截止时间。 | | 服务端缓存条数 | 600 | 按"块"缓存译文。 | | 跳过已是中文的思考 | 开 | 原文本来就是中文时直接跳过,不调用模型。 | | 译文文字大小 | 13px | 只影响译文面板。 | 原理与安全性保证 插件采用双端架构: - 宿主端(lib/index.js):注册六条本地同源路由: - GET /dsh-cot-en2cn/state - PUT /dsh-cot-en2cn/config - POST /dsh-cot-en2cn/translate - GET /dsh-cot-en2cn/providers - GET /dsh-cot-en2cn/models - POST /dsh-cot-en2cn/cache/clear 翻译请求通过 DSH 的 ctx.llm.stream() 发起,复用用户在 DSH 中既有的模型渠道与凭据。翻译接口与配置接口严格限制仅接收本机(127.0.0.1)且同源的请求。 - 浏览器端(lib/client.js):利用 MutationObserver 监听对话视图,寻找带有 data-variant="think" 属性的思考节点(带类名兜底),在思考正文下方动态插入独立的译文 DOM。 为什么不做成官方插槽:DSH 的 slot 系统未提供针对“单块思考”的细粒度位置,若替换 conversation.chat.node 会强行覆写整个 assistant 渲染器,改动过重,因此采用只做 DOM 增强的实现方式。 由此提供三项确定性保证: 1. 绝不污染会话数据:插件不写会话日志,会话记录、轨迹(Trajectory)视图、KV cache、上下文压缩完全不受影响。 2. 零副作用:随时停用插件,界面恢复原生状态,不留痕迹。 3. 优雅降级:若未来 DSH 调整了思考块的 DOM 结构,插件仅安静地不显示译文,绝不会破坏宿主页面的正常渲染。 隐私与调用开销 - 不触碰 API Key:插件不包含、不索取、不存储任何 API Key,所有调用完全基于宿主已配置的通道。 - 按需消耗:折叠不翻、中文跳过、切块复用。并发请求控制在阈值内(默认 2),单次超时受控(默认 120 秒)。 - 完全本地:无外部数据上报,所有逻辑均在本地 Node.js 进程与浏览器之间完成。 常见问题 (FAQ) Q: 展开思考块后没有出现译文? A: 请按顺序排查: 1. 设置面板中的「启用 CoT 中文翻译」总开关是否处于开启状态; 2. 该思考块是否仍处于流式生成中(默认策略会等待思考完成后自动触发); 3. 思考原文是否本来就是中文(插件会自动跳过中文内容); 4. 查看译文位置是否有报错提示信息,如网络超时等。 Q: 界面提示“没有可用的模型路由”? A: DSH 尚未配置默认模型,或者插件设置里的 Provider 与 模型 名称仅填写了其中一项。两者必须同时填写或同时留空。 Q: 提示输出被 max-tokens 截断? A: 思考文本较长时,可以在设置中将「单块字符数」调小(例如调整为 1500)。 Q: 译文会记录在轨迹(Trajectory)视图里吗? A: 不会。插件仅在 Web 对话视图的思考块后插入临时渲染节点,不进入轨迹记录。 Q: 会与其它 Web 插件冲突吗? A: 不会。插件不占用任何 slot 插槽,不替换既有渲染器。译文面板内按钮的点击事件均在捕获阶段拦截,不会误触发宿主思考块的展开或折叠。 质量保证 项目内置 83 项自动化测试,无第三方测试框架依赖,执行命令即可运行: npm test 测试覆盖清单: - tools/smoke.mjs (33 项):验证长文本分块可逆性(分块重组后与原文逐字节一致)、中文检测启发式、缓存读写、并发控制、重复请求去重、失败类型归因、配置夹紧边界及包清单契约。 - tools/host-integration.mjs (14 项):通过模拟 cordis 运行时挂载真实路由,验证状态获取、翻译处理、配置持久化及越权请求拦截。 - tools/parity-check.mjs (5 项):比对插件内部封装的消息体与 DSH 原生 createUserMessage,确保参数逐字段对齐。 - tools/browser-check.mjs (31 项):在 Headless Chrome 中加载真实的 lib/client.js,验证折叠不译、流式等待、中文跳过、单次请求去重、DOM 点击事件冒泡阻断、总开关关闭即时隐藏以及配置面板渲染逻辑。 目录结构 dsh-cot-en2cn/ ├── lib/ │ ├── index.js # 宿主端:配置读写 + 六条同源路由 │ ├── engine.js # 翻译引擎:分块缓存、并发闸门、超时、失败归类 │ ├── text.js # 分块与中文检测(纯函数) │ ├── config.js # 默认值与校验夹紧 │ ├── store.js # $DSH_HOME/storages/cot-en2cn/config.json 原子读写 │ ├── languages.js # 目标语言表 │ └── client.js # 浏览器端:DOM 监听、译文面板、设置面板 ├── tools/ │ ├── browser-check.mjs # 浏览器端无头集成测试 │ ├── host-integration.mjs # 宿主路由与上下文集成测试 │ ├── parity-check.mjs # 消息契约比对测试 │ └── smoke.mjs # 单元与冒烟测试 ├── cordis.patch.yml ├── package.json ├── README.md ├── README.en.md └── LICENSE 许可证 MIT