dsh-en2zh:DSH Web 会话里模型输出的沉浸式英译中

前言

在 DeepSeek Harness(DSH)里跑智能体时,模型经常以英文输出正文,甚至把 reasoning 块也写成英文。若你习惯在 Web UI 里读中文,就要在脑子里逐段翻译,或把内容复制到外部翻译工具,打断对话节奏。

下面介绍的 dsh-en2zh 是社区插件(维护者 r-ayin),在 DSH Web 界面里对模型输出的纯英文内容做实时翻译:译文显示在上方,原文保留在旁(弱化为灰色小字);思考块折叠行的摘要也会换成中文,展开后译文与原文并列。插件归类为「联网工具」,可在 SkillHub 目录页 查看条目;生态目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-en2zh(npm 包名 dsh-en2zh,当前版本 0.0.1,MIT 许可证)把翻译嵌进 DSH Web 会话:针对 assistant-step 下的正文与 think 块,在满足「纯英文」等规则时调用宿主侧翻译 API,可选本地机器翻译引擎,并支持 LLM 回退(README 与 package 描述中的 optional local MT engine and LLM fallback)。

架构上分两块:

  • host(src/host.mjs,纯 JS):提供 /en2zh/api/{ping,translate},批量翻译、长文本切块、模型路由等。
  • client(src/client/index.ts 经 tsdown 产出 lib/client.js):用 MutationObserver 与周期扫描驱动 DOM,右下角有「译中 ✓/✗」悬浮开关,状态写入 localStorage。

翻译范围与跳过规则

先做范围判断,再送翻,避免误改代码和用户输入。

处理 内容
翻译 assistant-step 下的 p / li / h1–h6 / blockquote;think 块的 thinkBody 与摘要行
跳过 含中文/日文/韩文或中英混杂、代码块(pre/code)、表格、路径/URL/标识符密集文本、少于 3 个单词的短文本、流式生成中的内容、用户消息、工具卡片

纯英文判定要点:无 CJK 字符、字母占比 ≥55%、技术词(含 / \ _ : = 与扩展名等)占比 ≤30%。为防流式半途文本,文本需连续两轮扫描(约 1.5s)指纹不变才提交翻译。译文按 sha256 缓存到 ~/.dsh/en2zh/cache.jsonl,刷新页面或重复文本可直接命中缓存。

构建与注入(开发启用)

资料中的启用方式面向本地开发与注入,而非目录页给出的单行 dsh plugin add 命令。若你要改代码或从源码启用,可按 README 操作。

1、在本机插件目录执行构建(host 直拷,client 用 tsdown;说明写明可在无 DSH 源码 checkout 的机器上构建):

bash scripts/build.sh

2、通过 DSH 开发注入加载插件(对 AI 助手使用文档中的注入指令,将 dir 指向本插件目录):

dev_inject_plugin {"dir": "<this-plugin-dir>"}

3、改代码后重新构建并热重载包:

bash scripts/build.sh
dev_reload_package {"packageName": "dsh-en2zh"}

注入成功后,浏览器需刷新一次页面,client 模块才会加载。运行环境要求 Node >=20(见 package.json engines)。

典型用法与自检

日常使用:打开 DSH Web 会话,保持右下角「译中」开关为开启(✓),阅读 assistant 英文输出时即可看到上文中文、旁侧原文。关闭开关会还原为仅显示原文。

宿主侧可用 curl 自检路由与翻译接口(默认示例端口为 3080,以你本机 DSH 为准):

curl -X POST http://127.0.0.1:3080/en2zh/api/ping -d '{}' -H 'content-type: application/json'
curl -X POST http://127.0.0.1:3080/en2zh/api/translate \
  -H 'content-type: application/json' \
  -d '{"items":[{"id":"t1","text":"Hello world, this is a test."}]}'

调试时可查看 host 日志:

~/.dsh/super-injector/dsh-en2zh.log

适用场景与注意

适合:主要在 DSH Web UI 里阅读英文模型输出、希望对照原文核对术语的开发者;需要 think/reasoning 块也中文化摘要的场景。

注意:

  • 插件在 当前 dsh 进程权限 下运行,翻译会走 loopback/trustedHosts 信任围栏内的 API,并可能调用已配置的 LLM provider;安装或注入前请阅读 GitHub 源码 与 MIT 许可证,确认符合你的安全与合规要求。
  • 流式输出、代码块、表格等按设计跳过,不会「全文机翻」。
  • 批量翻译单次 ≤5 段,长文本按段落切块(≤3000 字符);失败有约 30s 冷却、最多 3 次重试(client 状态机行为,见 README)。

结尾

dsh-en2zh 把英译中收进 DSH Web 会话:译文在上、原文保留,带缓存与跳过规则,减少在对话外切换翻译工具的摩擦。条目与版本信息见 SkillHub:r-ayin/dsh-en2zh,实现细节与构建说明见 GitHub:r-ayin/dsh-en2zh。

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

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

小夜