EPCN-fla/dsh-prompt-translation ↗★ 0
dsh-prompt-translation
Prompt, reasoning and response translation for DeepSeek Harness 支持传统API与智能体翻译,适合需要跨语言交流与推理的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:EPCN-fla/dsh-prompt-translation使用
1. 配置翻译方式
打开「插件 → dsh-prompt-translation」。插件默认关闭翻译;展开翻译卡片,选择翻译类型、配置服务后,勾选「启用翻译」并保存。卡片底部可保存设置或放弃修改。
| 传统翻译服务 | 所需配置 | 接口 |
|---|---|---|
| 百度 | App ID、密钥 | 官方通用翻译 API |
| Cloud Translation API Key | Basic v2 | |
| DeepL | API Key、Free / Pro 选择 | /v2/translate |
| 微软 | Translator API Key、资源区域(按资源要求) | Translator v3 |
密钥通过 DSH 设置接口交给 Host,由 secret 字段保存;浏览器不直接调用供应商。密钥输入框留空保留已有值,切换服务时必须填写新服务的密钥。删除凭据可在 DSH 组件配置中清空 apiKey。
选择「智能体」时,填写已有提供商 ID、模型 ID,以及可选的推理强度。候选项来自 DSH 模型目录,也支持手动填写已有 ID。推理强度必须受该模型支持,留空使用模型默认值。辅助翻译调用不提供工具,不会再次进入翻译链路,会产生额外模型请求和费用。自动回译会额外调用所选服务检测本轮用户语言;传统 API 读取检测元数据,模型模式使用独立语言检测请求。
2. 选择语言和翻译内容
选择「原始语言 → 目标语言」,再独立勾选用户提示词、思考内容和输出内容。原始语言可设为自动检测。
用户提示词按“原始 → 目标”翻译,思考与回答译回原始语言。 例如 简体中文 → 日本語 会把输入译成日语,并把选中的思考、回答译回中文。原始语言为自动检测时,使用本轮用户输入确定回译语言;不同会话互不影响。无法可靠检测时会报错,请明确选择原始语言。只需要回译时可以关闭用户提示词翻译。
同语言时是否调用翻译服务: 以下规则适用于已启用相应翻译开关的非空文本。
| 场景 | 当前行为 |
|---|---|
显式选择相同原始和目标语言,例如 简体中文 → 简体中文 | 用户提示词直接跳过翻译,不调用翻译 API 或模型。 |
| 原始语言为自动检测 | 仍会调用所选翻译服务;即使检测结果与目标语言相同,目前也不会据此跳过后续提示词翻译。 |
| 思考与回答回译 | 使用 自动检测 → 本轮用户语言,即使模型已经使用该语言输出,仍会调用翻译服务。 |
翻译前后文本相同不代表没有调用服务:可能已经发出请求,只是返回了相同文本,仍可能产生延迟和费用。
语言选项包括简体中文、繁体中文、英语、日语、韩语、法语、德语、西班牙语、俄语、葡萄牙语、意大利语、阿拉伯语和印地语;实际可用性取决于供应商。
在已有会话的输入框左下角,点击「权限」右侧的翻译图标,可以快捷启停和切换语言。图标划线表示关闭,无划线表示开启;弹窗使用“语言下拉框 → 语言下拉框”单行布局。修改作用于当前 Profile 的所有会话。
3. 生效时机与优先级
- 保存后,下一次用户提交读取新配置;一轮提示词与回译共用该轮的配置快照,正在生成的回答不会被后续编辑切换服务或回译语言。
- 用户提示词在
agent/pre-step阶段翻译,保留原消息 ID;历史提示词不会在后续工具步骤重复翻译。 - 系统提示词、工具调用参数、工具结果、注入上下文、图片和文件块不参与翻译。标题生成、压缩等辅助模型调用不进入本插件的输出翻译。
- 思考与输出在完整文本块生成后翻译,再交给 DSH 展示和持久化;启用的内容不再逐 token 展示。
- 输入翻译或语言检测失败时,原始用户消息仍会记录并显示,然后在调用主模型前明确报错;不会静默将原文继续发送。取消会传播到翻译调用,卸载会撤销监听器并取消进行中的翻译。
1. 配置翻译方式
打开「插件 → dsh-prompt-translation」。插件默认关闭翻译;展开翻译卡片,选择翻译类型、配置服务后,勾选「启用翻译」并保存。卡片底部可保存设置或放弃修改。
| 传统翻译服务 | 所需配置 | 接口 |
|---|---|---|
| 百度 | App ID、密钥 | 官方通用翻译 API |
| Cloud Translation API Key | Basic v2 | |
| DeepL | API Key、Free / Pro 选择 | /v2/translate |
| 微软 | Translator API Key、资源区域(按资源要求) | Translator v3 |
密钥通过 DSH 设置接口交给 Host,由 secret 字段保存;浏览器不直接调用供应商。密钥输入框留空保留已有值,切换服务时必须填写新服务的密钥。删除凭据可在 DSH 组件配置中清空 apiKey。
选择「智能体」时,填写已有提供商 ID、模型 ID,以及可选的推理强度。候选项来自 DSH 模型目录,也支持手动填写已有 ID。推理强度必须受该模型支持,留空使用模型默认值。辅助翻译调用不提供工具,不会再次进入翻译链路,会产生额外模型请求和费用。自动回译会额外调用所选服务检测本轮用户语言;传统 API 读取检测元数据,模型模式使用独立语言检测请求。
配置存储格式
设置命名空间和 Loader 行 ID 均为 prompt-translation。用户设置保存在当前 Profile 的 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
提供商、模型和推理强度需要替换成实际支持的值;使用默认推理强度时删除 reasoningEffort。部署方也可以在组合层同一插件行的 config 中预置配置。
传统翻译配置使用 type: traditional,并填写 engine(baidu / google / deepl / microsoft)、apiKey,以及对应服务的 appId、region 或 deeplFree。不要将真实密钥提交到仓库。
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled | false | 启用翻译 |
source / target | auto / en | 原始语言与目标语言 |
type / engine | traditional / google | 翻译类型与传统服务 |
userPrompt / reasoning / output | true / false / false | 三类内容开关 |
timeoutMs | 60000 | 单个文本块翻译的总超时,范围 1000–300000 毫秒 |
maxChars | 2000 | 单次请求 Unicode 字符上限,范围 100–4000;百度还受 6000 UTF-8 字节上限约束 |