在 DeepSeek Harness (DSH) 的使用场景中,推理模型(如 DeepSeek、GLM、Gemini)常输出大量英文思维链。对于中文用户,阅读长篇英文思考过程消耗精力。dsh-cot-en2cn 旨在提供一种非侵入式的解决方案,在展开思考块时,将英文译文直接渲染在原文下方,而不修改任何会话数据。
插件简介¶
该插件由 Eyeing0721 维护,采用 MIT 许可证。它是一个 Web UI 插件,利用浏览器端和宿主端的配合,通过 MutationObserver 监听对话视图,动态插入译文 DOM。核心特性包括零运行时依赖、不触碰 API Key、双端缓存以及 83 项自动化测试。
安装与启用¶
系统要求¶
- DeepSeek Harness (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'
本地目录安装¶
从本地目录安装时(link 方式),源目录不可删除或移动,否则插件会失效。
dsh plugin --profile web add /path/to/dsh-cot-en2cn
安装完成后,重启 dsh web,刷新浏览器页面即可生效。
卸载¶
dsh plugin --profile web remove dsh-cot-en2cn
使用方式¶
- 界面交互:展开任意「思考」块,中文译文会直接渲染在思考原文正下方。译文左侧带有一条竖线,顶部显示所用模型、缓存命中情况及耗时。右上角提供
重新翻译、复制、收起按钮。 - 触发机制:
- 折叠的思考块绝不翻译,不产生模型调用。
- 原文为中文时直接跳过,不发起请求。
- 展开思考块时,若模型仍在流式输出,默认等待其思考结束后再翻译。
- 控制面板:进入 设置 → 插件 → 「CoT 英文转中文」 即可打开配置面板。
配置项¶
配置文件路径:$DSH_HOME/storages/cot-en2cn/config.json。所有配置项在载入时都会经过校验。
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 启用 CoT 中文翻译 | 开 | 总开关,关闭后所有译文面板立即消失。 |
| 展开时自动翻译 | 开 | 关闭后每块思考需要手动点击「翻译这段思考」。 |
| 思考过程中也翻译 | 关 | 模型还在流式输出时就翻译(更费 token)。 |
| Provider / 模型 | 空 | 留空则跟随 DSH 默认模型。翻译建议选便宜快的小模型。 |
| 关闭思考(推荐) | 开 | 仅 DeepSeek 官方适配器认此映射。 |
| 目标语言 | 简体中文 | 可选繁体中文 / English / 日本語。 |
| 单块字符数 | 3000 | 超过则分块翻译并缓存。调小更稳但请求数变多。 |
| 并发请求数 | 2 | 同时进行的模型请求数。 |
| 单次超时 | 120 秒 | 单次模型请求的截止时间。 |
| 服务端缓存条数 | 600 | 按”块”缓存译文。 |
| 跳过已是中文的思考 | 开 | 原文本来就是中文时直接跳过。 |
| 译文文字大小 | 13px | 仅影响译文面板显示。 |
原理与安全¶
插件采用双端架构:
- 宿主端(lib/index.js):注册六条本地同源路由(如 /dsh-cot-en2cn/translate),通过 DSH 的 ctx.llm.stream() 发起翻译请求,严格限制仅接收本机请求。
- 浏览器端(lib/client.js):利用 MutationObserver 监听对话视图,寻找带有 data-variant="think" 属性的思考节点,在下方动态插入译文 DOM。
由此提供三项保证:
1. 绝不污染会话数据:不写会话日志,轨迹(Trajectory)视图不受影响。
2. 零副作用:随时停用插件,界面恢复原生状态。
3. 优雅降级:若 DSH 调整 DOM 结构,插件仅不显示译文,不会破坏宿主页面渲染。
质量保证¶
项目内置 83 项自动化测试,无第三方框架依赖。
npm test
测试覆盖包括长文本分块可逆性、中文检测、缓存读写、并发控制、配置校验及 DOM 事件拦截等。
链接¶
- GitHub: https://github.com/Eyeing0721/dsh-cot-en2cn
- DSH Catalog: https://www.skillhub.cn/plugins/Eyeing0721/dsh-cot-en2cn