前言¶
在 DSH(DeepSeek Harness)Web 里和模型对话时,输入框里的文字往往是口语化草稿:有口头禅、重复和乱序,但意思已经在了。若每次都要自己逐句改写成更顺口的表达,会打断发送节奏;若把整段对话历史交给模型「代写」,又容易越界到替你发言、或把不该带的上下文一并送出。
下面介绍的 dsh-draft-polish 是维护者 WanchunLian 发布的 客户端 Web 插件:在输入框右侧提供「润色」入口,默认走快路径只生成一版「核心意思」,确认后通过官方草稿通道写回输入框,由你删改再发送。设计原则是 AI 只帮你把话说到位,绝不替你发言。
这是什么¶
- 名称:
dsh-draft-polish(npm 包名,当前版本 0.1.0) - 类型:DSH Web 客户端插件(
dsh.client.platform: web),浏览器半边注入 UI,宿主半边提供 fenced API - 仓库:https://github.com/WanchunLian/dsh-draft-polish(MIT)
- 社区目录:https://www.skillhub.cn/plugins/WanchunLian/dsh-draft-polish(独立社区站点,与 DeepSeek / 幻方无官方从属关系)
一句话:把还没发出的口语化草稿,一键润色成更专业、更顺口的表达;替换回输入框后仍由你确认再发送。
核心功能¶
默认快路径:只出一版核心意思¶
轻量化设计下,点击润色后默认只生成 核心意思 一版(调用 POST /draft-polish/api/polish/one,roleId 为 core),避免一次拉满 8 段的长等待。需要其它表达风格时,在 compact 560px 面板里通过「更多风格」按需展开、逐条生成。
面板与替换¶
- 主卡提供「用这版替换」;7 个额外视角折叠在次级入口,不抢主视觉。
- 展开后的视角卡可勾选「并入」;勾选 ≥2 条时会出现「合并 N 版替换」,按
【视角】标题拼接多版内容。 - 替换走官方
setDraft通道,支持 Ctrl+Z 撤销回原始草稿。
口语清洗与边界¶
- 润色侧强调去掉口头禅、重复、乱序,还原事实主干,不编造用户没说过的事实。
- 草稿长度上限 2000 字(
MAX_DRAFT_CHARS),超出接口返回DRAFT_TOO_LONG,需精简后再试。 - 单次 LLM 生成默认超时 30000 ms(
DEFAULT_TIMEOUT_MS)。
隐私与降级¶
- 只发草稿快照:点击润色瞬间锁定输入框快照(
lockedRef);面板打开期间你继续输入的内容、对话历史 不会 进入任何 LLM 请求。请求体白名单仅允许draft、roleId、timeoutMs等字段;夹带sessionId、conversation、history等会 400 UNEXPECTED_FIELD。 - 润色失败不阻塞发送:LLM 不可用或超时时 toast 提示「润色暂时不可用,可原样发送」,输入框原样保留;发送中(submitting/adjudicating)时润色按钮置灰,防误触。
全量 8 段接口 POST /draft-polish/api/polish 仍保留兼容,前端默认不再使用。
安装与启用¶
前置要求¶
- Node.js 20+(README 实测 v22.22.2)
@deepseek-ai/dsh(文档写明 0.1.1-rc.2,可用npx @deepseek-ai/dsh web启动)- DSH profile 目录(Windows 示例:
C:\Users\<你>\.dsh\profiles\web)
步骤(link 开发/本地安装)¶
资料中的部署方式为 npm link: 装进 profile,改 lib/*.js 可实时生效;改动 cordis.yml / package.json 的 bundle 声明需重启 dsh web。
-
进入插件项目根目录(路径按你本机 clone 或下载位置为准)。
-
在 profile 目录执行 link 安装:
cd C:\Users\wanch\.dsh\profiles\web
npm install link:D:\mycode\dsh\dsh-draft-polish
-
确认
profiles\web\package.json的dependencies已包含dsh-draft-polish: link:...;若dsh.profile.bundles缺少 bundle 注册,需参考同机官方 bundle 写法补齐包名。 -
启动 Web:
npx @deepseek-ai/dsh web
浏览器打开 http://127.0.0.1:3456,输入框工具行右侧应出现「✨ 润色」按钮。
典型用法¶
- 写:在输入框输入或语音转写一段话(口语化、有口头禅即可)。
- 点:点「✨ 润色」,稍等弹出「润色结果」,默认已有一版核心意思。
- 换:合适则点「用这版替换」→ 回输入框检查、删改 → 再点发送。
需要其它风格:面板中「想要其它风格?」→ 选视角「生成这版」,可单版替换,或勾选多版后「合并 N 版替换」。不需要任何结果时关面板(Esc 或点遮罩),输入框保持原样。
适用场景与注意¶
适合:经常在 DSH Web 里先打口语草稿、再希望快速收成专业表达后再发送的开发者或日常用户;在意「只润色当前草稿、不带会话上下文」的场景。
注意:
- 插件随 DSH 进程运行,安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境与合规要求。
- 宿主路由带 loopback / 同源等 fence,LLM 调用在宿主侧完成,浏览器不直连
ctx.llm。 - 项目提供
npm test(node --test test/polish-core.test.mjs)回归上下文红线与白名单;README 记录 V2 轻量化(2026-09-04)与多项 Playwright / 真模型里程碑,以仓库文档为准。
结尾¶
dsh-draft-polish 把「发前的最后一道措辞」做成输入框旁的一键能力:快路径只出核心意思,多风格与多版合并按需展开,失败时仍可原样发送。进一步了解可在社区目录页查看简介,在 GitHub 阅读完整 README、docs/design.md 与 API 契约。