意图翻译(Intent Translator)
把口语化、不专业的草稿翻译成结构清晰、术语准确的专业提示词,并把「你的说法」对照到「专业说法」。
面向的痛点:写提示词时词不达意、不知道该用什么专业术语、想用术语但不知道怎么说。插件不替你完成任务,只重写你的表达。
English — A DeepSeek Harness plugin that rewrites a plain-language composer draft into a structured, terminology-precise prompt, pairs each colloquial phrase with the professional term and a one-line explanation, and offers a terms-only mode that returns terminology without rewriting the draft. Install from this repository; the plugin declares
dsh.bundleand has no third-party dependencies.
怎么用
- 在输入框里写下你现在的想法,不用组织语言,也不用管专业不专业。
- 点输入框工具行左侧的「译」按钮。
- 选「整段需求」,点「翻译成专业提示词」。
- 看结果:
- 顶部大块是专业提示词:一条可以直接发送的提示词,按「目标 / 背景 / 具体要求 / 约束 / 交付物 / 验收」组织;缺失的关键信息会写成「待确认」。右上角的图标可复制。
- 中间是术语对照:挑出 2–5 处「原话 → 专业说法」,并用一句人话解释为什么更准确。
- 底部是假设:模型为了补全提示词所做的关键理解,方便你纠正。
- 点「替换输入框」写回草稿,或先复制。
对话框里还有一个「只查术语」模式:输入一段模糊描述,直接得到 3–6 个专业说法(含领域、解释和例句),不会改写整段提示词。适合先搞清楚「这件事专业上怎么说」。
没想好怎么写时,对话框会给出几个示例,点一下就能填入。
它怎么工作
- Host 半:注册一条同源路由
/intent-translator/api,复用你已经配置好的模型路由(默认取「新会话默认模型」,也可在插件行配置里指定)。它只做一次辅助模型调用,不创建会话、不写入会话记录、不保存你的原文。 - Client 半:在
conversation.input.left注册一个 28px 的「译」按钮,读取当前草稿;结果用原生<dialog>展示。只有点「替换输入框」才会改动草稿。 - 术语来源:模型按插件内置的改写规范生成,不依赖外部词典;不确定时宁可不给,避免生造术语。
- 失败兜底:模型没有按 JSON 结构返回时,对话框直接展示原文并标注「模型没有按结构返回,以下是原文」;请求超时、模型不可用、页面会话失效都有对应提示。
安全与边界
- 路由只接受
POST,并调用ctx.connection.requestRejection执行 Host/Origin 校验和浏览器认证;未通过认证的请求返回 401/403。 - 请求体上限 64 KiB,正文上限 4000 字(「只查术语」600 字),同时最多 2 个翻译在跑。
- 你提交的原文会发送给当前模型路由的提供方,和正常对话一样;插件自身不落盘,服务端日志只记录失败代码,不记录原文或模型输出。
- 不会自动发送消息,不会静默改写草稿。
- 每次翻译会调用一次当前模型,产生少量 Token 消耗;费用计入你现有的模型路由。
可选配置
在 cordis.patch.yml 的插件行里加 config(不改也能用):
- insert:
- id: intent-translator
name: '@ffffffcn/dsh-intent-translator'
config:
provider: deepseek # 可选;和 model 同时给才生效
model: deepseek-flash # 不指定时用默认模型
maxInputChars: 4000
maxTermsInputChars: 600
timeoutMs: 60000
temperature: 0.4
promptMaxTokens: 2400
termsMaxTokens: 1200
maxConcurrent: 2
provider 与 model 必须成对出现;只写一个会被忽略并回退到默认模型。
安装
在 DeepSeek Harness 的插件市场(如 dsh-market)中搜索本仓库,或用市场生成的安装命令从 GitHub 安装;本仓库可直接从源码安装,无需构建步骤。
本地开发时也可以 bundle 形式安装:
plugin_manager({ action: "install_bundle", target: "<本仓库路径>" })
装好后刷新页面即可看到输入框工具行的「译」按钮。卸载用 remove_bundle。
仓库清单
package.json同时声明dsh.bundle与dsh.client;无运行时依赖、无安装脚本、无构建产物。- 运行时文件:
index.js(Host 路由与模型调用)、core.js(纯逻辑)、client.js(浏览器半)、cordis.patch.yml、locale/*.json、icon.svg。 assets/icon-180.png是市场卡片图标(由icon.svg同源设计导出的位图)。
结构
| 文件 | 作用 |
|---|---|
package.json |
bundle 清单:dsh.bundle.patch 与 dsh.client 声明 |
cordis.patch.yml |
插入 intent-translator 行 |
index.js |
Host 半:组合翻译操作与路由 |
core.js |
纯逻辑:改写规范、JSON 容错解析、模型流式调用、HTTP 处理 |
client.js |
Client 半:工具行按钮、弹窗、术语对照、复制与替换 |
test/core.test.mjs |
Host 纯逻辑与 HTTP 处理单元测试(node --test) |
locale/*.json |
Plugin Manager 显示的标题与说明 |
icon.svg / assets/icon-180.png |
原创图标:未整理便签 → 结构化提示词(SVG 与市场用位图) |
验证
node --check index.js && node --check core.js && node --check client.js
node --test test/core.test.mjs
许可
MIT。见 LICENSE。
No comments yet. Be the first to write one.