ffffffcn/dsh-intent-translator:把口语草稿重写成结构化专业提示词的 DSH 插件

前言

写提示词时常见的毛病不是不会写长,而是词不达意:脑子里是「帮我搞个能自动回评论的东西」,落到提示词里却不知道该用「分类」还是「审核」,更别提「目标 / 背景 / 约束 / 验收」这些骨架。直接把口语草稿丢给模型,得到的往往是另一段口语。

DeepSeek Harness(DSH)的插件 ffffffcn/dsh-intent-translator 就是处理这一步的。它不替你完成任务,只在发送之前把你的草稿重写成结构化、术语准确的提示词,并告诉你「你的说法」对应的专业说法是什么。下面介绍它的能力边界、安装方式和用法。

这是什么

一句话定位:DSH 插件,把一段口语化草稿重写为按「目标 / 背景 / 具体要求 / 约束 / 交付物 / 验收」组织的专业提示词,同时给出原话与专业术语的对照。

  • 维护者:FFFFFFcn
  • 路径:Host 半注册同源路由 /intent-translator/api,调用你已配置好的模型路由做一次辅助模型调用;Client 半在输入框工具行左侧加一个「译」按钮,用原生 <dialog> 展示结果。
  • 插件声明了 dsh.bundle 与 dsh.client,无运行时依赖、无安装脚本、无构建产物,从源码可直接安装。
  • 分类:模型推理;许可:MIT。

核心功能

README 里写得很明确,插件不替你完成任务,只重写表达,能力集中在四处:

  1. 整段翻译:把草稿重写成一条可直接发送的提示词,按「目标 / 背景 / 具体要求 / 约束 / 交付物 / 验收」组织;缺失的关键信息会写成「待确认」,而不是替你编。
  2. 术语对照:从原文里挑出 2–5 处,给出「原话 → 专业说法」+ 一句解释为什么更准确。
  3. 假设列表:模型为了补全提示词所做的关键理解列在底部,方便你发现并纠正跑偏的地方。
  4. 只查术语模式:输入一段模糊描述,直接返回 3–6 个专业说法(含领域、解释和例句),不改写整段提示词。适合先搞清楚「这件事专业上怎么说」。

术语来源不是外部词典,而是模型按插件内置的改写规范生成;README 明确写了「不确定时宁可不给,避免生造术语」。

安装与启用

README 给出的安装方式是二选一,不提供 dsh plugin add 形式的命令:

# 方式一:插件市场(如 dsh-market)搜索本仓库,或用市场生成的安装命令从 GitHub 安装

# 方式二:本地开发时以 bundle 形式安装
plugin_manager({ action: "install_bundle", target: "<本仓库路径>" })

装好后刷新页面,输入框工具行左侧会出现「译」按钮。卸载用 remove_bundle。本仓库可直接从源码安装,无需构建步骤。

典型用法

README 的四步操作:

  1. 在输入框里写下现在的想法,不用组织语言,也不用管专业不专业。
  2. 点输入框工具行左侧的「译」按钮。
  3. 选「整段需求」,点「翻译成专业提示词」。
  4. 看结果:顶部大块是专业提示词,中间是术语对照,底部是假设。

结果区域的操作:右上角图标可复制;点「替换输入框」会把结果写回草稿,不点就不会改动任何内容。

对话框里没想好怎么写时,插件会给几个示例,点一下就能填入。

「只查术语」模式

在对话框里切换到「只查术语」,输入一段模糊描述,直接得到 3–6 个专业说法,不会改写整段提示词。这个模式的输入上限更紧:正文 600 字,整段翻译是 4000 字。

可选配置

不改配置也能用。想指定模型时,在 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 必须成对出现;README 明确写了只写一个会被忽略并回退到默认模型。默认模型取「新会话默认模型」,也可以在这里指定。

适用场景与注意

适合的场景:草稿写得随性、但希望发给模型的提示词结构完整且术语准确的场合;以及不确定某个模糊说法该用什么专业表述、想先查一下的场合。整个交互在输入框侧完成,不需要改命令行。

几点需要留意的地方,都来自 README 的「安全与边界」一节:

  1. 权限与数据外发:插件以当前 dsh 进程权限运行,你提交的原文会发送给当前模型路由的提供方,和正常对话一样。安装前建议先读一遍源码(仓库里 index.js、core.js、client.js 都在,无构建产物,可以直接看)并确认 MIT 许可。
  2. 不落盘:插件自身不落盘,服务端日志只记录失败代码,不记录原文或模型输出。
  3. 不自动发送:不会自动发送消息,不会静默改写草稿;只有点「替换输入框」才改动草稿。
  4. 会消耗 token:每次翻译调用一次当前模型,产生少量 token 消耗,费用计入你现有的模型路由。
  5. 失败兜底:模型没有按 JSON 结构返回时,对话框直接展示原文并标注「模型没有按结构返回,以下是原文」;请求超时、模型不可用、页面会话失效都有对应提示。
  6. 请求边界:路由只接受 POST,并调用 ctx.connection.requestRejection 做 Host/Origin 校验和浏览器认证,未通过认证的请求返回 401/403;请求体上限 64 KiB,正文上限 4000 字(只查术语 600 字),同时最多 2 个翻译在跑。

小结

这个插件的价值很窄:它不生成内容、不做任务规划,只把「你写的」翻译成「模型更容易正确执行的表达」,再顺手告诉你专业上该怎么说。如果手写提示词时经常卡在术语和结构上,又不想每次翻文档,值得装上试一轮。

  • 目录页:https://www.skillhub.cn/plugins/FFFFFFcn/dsh-intent-translator
  • 仓库:https://github.com/FFFFFFcn/dsh-intent-translator

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

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

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

小夜