dsh-prompt-translation:在 DSH 对话流程中按需翻译提示词、思考与回答

前言

在 DeepSeek Harness(DSH)里做多语言对话时,常见情况是:你用中文写提示词,希望主模型用日语推理,再在界面上用中文阅读思考和最终回答。若只在系统提示里要求「请用某语言回答」,往往无法分别控制「发送前译输入」「保留原文展示」和「把模型输出译回阅读语言」。

下面介绍社区插件 dsh-prompt-translation(维护者 EPCN-fla)。它把翻译接到 DSH 的对话链路里,用内容级开关决定译哪些环节,配置写在当前 Profile 的 cordis.patch.yml 中,无需单独存储。插件在 SkillHub 目录中归类为「模型推理」;仓库简介为:Prompt, reasoning and response translation for DeepSeek Harness.

这是什么

dsh-prompt-translation 是 DSH 的双端插件:Host 半端负责翻译接口、复用已有模型调用并拦截对话;Web 客户端半端提供设置卡片和输入框快捷菜单。用户可在「插件 → dsh-prompt-translation」里配置语言与翻译方式,并在输入框「权限」图标右侧用「翻译」菜单快捷启停、切换语言。修改设置后作用于该 Profile 的全部会话,一般无需重启插件。

核心功能

以下能力均来自项目 README 与 package.json 说明。

独立内容开关

可分别选择是否翻译:

  • 用户提示词(系统提示词不翻译)
  • 模型思考内容
  • 模型输出内容

工具调用参数、工具结果、注入上下文、图片和文件块保持原样,不进入翻译。

语言方向与自动检测

原始语言支持自动检测;目标语言需明确指定。语言选项包括简体中文、繁体中文、英语、日语、韩语、法语、德语、西班牙语、俄语、葡萄牙语、意大利语、阿拉伯语和印地语,实际可用性取决于所选翻译供应商。

方向规则: 用户提示词按「原始 → 目标」翻译;思考与回答译回原始语言。例如 简体中文 → 日本語 会把输入译成日语,并把选中的思考、回答译回中文。原始语言为自动检测时,用本轮用户输入确定回译语言。

传统 API 与 DSH 内模型

  • 传统翻译: 百度、Google、DeepL、微软官方 API(README 中列出了各服务所需配置与接口版本)。
  • 智能体翻译: 使用 DSH 已配置的提供商 ID、模型 ID,以及可选推理强度;辅助翻译调用不提供工具,会产生额外模型请求与费用。

密钥通过 DSH 设置接口交给 Host,由 secret 字段保存,浏览器不直接调用供应商。

展示与轨迹对照

聊天气泡可显示用户原文;轨迹里用户记录可在「预览」和「原始内容」查看原文、实际发送的译文及语言方向。助手记录中的思考和回答也可查看翻译前后内容。完整块翻译后再展示,启用翻译时不再逐 token 流式展示译文。

配置持久化

设置命名空间与 Loader 行 ID 均为 prompt-translation。保存使用 DSH 设置服务;并发写入冲突时会重新读取后重试一次。

安装与启用

插件当前版本为 0.1.1(MIT 许可证)。与 DSH 的对应关系如下:

插件版本 适配的 DSH 版本
0.1.0 ~ 0.1.1 ≥0.2.0-rc.1 <0.2.0 || ≥0.2.1-rc.1 <0.2.1

以下命令会把插件加入指定 Profile(示例 Profile 为 web)。包内包含 cordis.patch.yml,DSH 会自动挂载 Host 并加载 Web 客户端模块。

从 npm 安装(包发布后):

dsh plugin --profile web add dsh-prompt-translation

从 GitHub 安装(仓库发布后):

dsh plugin --profile web add github:EPCN-fla/dsh-prompt-translation

Git 源安装需要允许包管理器执行 prepare 并完成构建;若禁止安装脚本,请使用预构建的 npm 包。

本地开发可指向已构建的工作副本(每次改源码后需重新 npm run build):

dsh plugin --profile web add /absolute/path/to/dsh-prompt-translation

安装后重启 DSH Web 并刷新页面。执行下面命令,确认输出包含 ID 为 prompt-translation 的插件行:

dsh --profile web --dump-config

卸载示例:

dsh plugin --profile web remove dsh-prompt-translation

卸载后需重启 Profile 并刷新页面;已持久化的译文仍会保留。

典型用法

1. 在 Web 里配置翻译方式

打开「插件 → dsh-prompt-translation」。插件默认关闭翻译。展开翻译卡片,选择翻译类型并配置服务,勾选「启用翻译」后保存。

选择「智能体」时填写已有 provider、model,以及可选 reasoningEffort。选择传统服务时按 README 表格填写 App ID、API Key、区域或 DeepL Free/Pro 等字段。密钥输入框留空可保留已有值;切换服务时需填写新服务密钥。

2. 选择语言与翻译范围

设置「原始语言 → 目标语言」,并勾选用户提示词、思考、输出。只需回译时可关闭用户提示词翻译。

在已有会话输入框左下角,「权限」右侧的翻译图标可快捷启停与切换语言:划线表示关闭,无划线表示开启。修改作用于当前 Profile 的所有会话。

3. 在 YAML 中预置或核对配置

部署方可在 cordis.patch.yml 对应插件行的 config 中预置,例如智能体模式:

- id: prompt-translation
  name: dsh-prompt-translation
  config:
    enabled: true
    source: auto
    target: zh
    type: agent
    provider: your-existing-provider
    model: your-existing-model
    reasoningEffort: low
    userPrompt: false
    reasoning: true
    output: true
    timeoutMs: 60000
    maxChars: 2000

传统模式使用 type: traditional,并设置 engine(baidu / google / deepl / microsoft)及 apiKey 等;勿将真实密钥提交到仓库。常用字段默认值见 README(如 enabled 默认 false,target 默认 en,timeoutMs 默认 60000,maxChars 默认 2000)。

4. 生效时机

保存后,下一次用户提交读取新配置;一轮提示词与回译共用该轮配置快照。用户提示词在 agent/pre-step 阶段翻译;思考与输出在完整文本块生成后翻译。输入翻译或语言检测失败时,原始用户消息仍会记录显示,并在调用主模型前明确报错,不会静默用原文继续发送。

适用场景与注意

适合谁: 需要在 DSH 中做跨语言输入、用母语阅读模型思考与回答,或希望复用已有翻译 API / 已配置的 LLM 做翻译,又不想在每条提示词里重复写翻译指令的开发者与用户。

同语言与费用: 显式选择相同原始和目标语言时,用户提示词会跳过翻译;自动检测模式下仍可能调用翻译服务。思考与回答回译即使用户语言与输出相同,当前仍会调用服务。翻译前后文本相同不代表未产生请求,仍可能有延迟与费用。

范围与限制(README 已说明): Web 界面提供设置与快捷按钮;其他界面可用 Host 链路但无快捷菜单。长文本会分段翻译;传统 API 不保证代码与 Markdown 逐字不变。插件以当前 DSH 进程权限运行,安装前请阅读源码与 MIT 许可证,并自行评估第三方 API 与模型调用的账单与安全策略。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-prompt-translation 把用户提示词、思考与回答的翻译拆成可配置开关,接入 DSH 的 Host 与 Web 客户端,并支持传统 API 与已有模型两种后端。若你在 Harness 里经常切换工作语言与阅读语言,可按上文命令安装并在 Profile 中启用。

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

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

Xiaoye