dsh-prompt-polish
English | 中文
一个 DeepSeek Harness(DSH)插件: 在 Web 输入框的工具行中添加一个 ✨ 图标按钮。点击后选择润色风格,已接入的大模型 会把你草稿中的提示词改写得更专业、更易被 AI 理解 —— 改写结果直接替换回输入框, 发送前你可以先审阅。
- 纯图标按钮 —— 输入框工具行上一个 ✨ 图标,无文字;悬停提示给出完整说明。
- 四种改写风格 —— 平衡 / 简洁 / 详细 / 代码向。
- 多语言界面 —— 菜单文案跟随浏览器语言(中文、English、日本語、한국어、Français、
Deutsch、Español、Português、Русский、Italiano、Türkçe、Tiếng Việt;未匹配语言回退英文)。
- 复用已接入的模型 —— 优先使用当前默认 Agent 模型(
agentDefaultModel),
也可通过配置显式指定 provider / model。
环境要求
- 已运行的 DeepSeek Harness(
@deepseek-ai/dsh)web profile,并已配置模型适配器
(例如在设置中为 DeepSeek 服务商配置了 API Key)。
安装
# 在本仓库的检出目录(或其所在目录)中执行
dsh plugin --profile web add ./dsh-prompt-polish然后重启 dsh web,让 profile 加载新的 bundle:
dsh web打开 Web UI,输入一段草稿,点击输入框工具行中的润色按钮即可。
配置
插件在 profile 的 cordis.patch.yml(用户层,在 bundle 层之后应用)中接受可选配置:
- id: prompt-polish
config:
provider: deepseek-official # 显式指定路由(可选)
model: deepseek-v4-flash # 必须与 provider 成对出现
style: balanced # 默认改写风格:balanced | concise | detailed | code
maxTokens: 2048 # 改写调用的输出上限
# system: '...' # 自定义改写指令(替换内置的各风格提示词)未配置 provider / model 时,插件使用 agentDefaultModel.currentSelection() —— 与会话使用相同的默认模型。
工作原理
| 半边 | 文件 | 作用 |
|---|---|---|
| Host | lib/index.js | 在 Web 服务器上注册 POST /prompt-polish;通过 ctx.llm 流式执行一次 LLM 改写 |
| 浏览器 | lib/client.js | 向 conversation.input.right 注册润色按钮;打开风格菜单;提交草稿并把改写结果写回输入框 |
该 bundle 的 package.json 同时声明了双面插件的两个面:
dsh.bundle—— profile 的 patch 层(cordis.patch.yml),插入prompt-polishloader 行。dsh.client—— Web 启动行;client-modules将lib/client.js以
/plugins/dsh-prompt-polish/client.js 提供。
开发
编辑 lib/index.js(Host 侧)与 lib/client.js(浏览器侧)。浏览器 bundle 是手工构建的 闭包工厂产物(window.__ModuleLoader__.load({ id, factory }))—— 外部依赖仅限平台模块 (react、@deepseek-ai/dsh-client-ui-primitives),其余全部内联,符合 loader 的 模块表规则。
在改动线上 profile 之前,先在临时端口验证:
dsh web --port 3099
curl -s http://127.0.0.1:3099/plugins/dsh-prompt-polish/client.js | head
curl -s -X POST http://127.0.0.1:3099/prompt-polish \
-H 'content-type: application/json' \
-d '{"text":"read a.csv and sort by b","style":"code"}'许可证
MIT