DeepSeek Harness(DSH)采用插件化架构。在编写或调试提示词时,往往需要反复打磨才能得到理想的回复。dsh-prompt-optimizer 旨在解决这一问题,它将一个「优化」入口挂载到 Web GUI 的输入工具栏中,允许用户在发送前对当前草稿进行润色或重构。
插件概览¶
- 插件名称:
dsh-prompt-optimizer - 维护者: rayhanlu0519-a11y
- 许可证: MIT
- 核心功能: 在 DSH Web GUI 聊天输入框工具栏(模型切换按钮左侧)新增「✦ 优化」按钮,支持手动触发优化以及「发送前自动优化」开关。
核心功能¶
- UI 挂载: 插件注册到官方
conversation.input.right槽位,渲染在输入框底部工具条,位于模型切换按钮正左侧。配色随 DSH 深浅主题自动适配。 - 手动优化: 点击工具条上的「✦ 优化」按钮,对当前输入框内容进行优化。若草稿为空,按钮禁用并提示。
- 自动拦截: 开启「发送前自动优化」开关后,系统会在发送前拦截
Enter键与发送按钮点击(document 捕获阶段),先展示对比结果再决定是否发送。 - 前后对比与回退: 弹窗展示原文(只读)与优化后内容(可编辑)。提供四个选项:采用并发送、仅填入输入框、发送原文、放弃。若优化失败或超时,系统自动回退发送原文,不中断对话。
- 双后端支持:
DSH 内置路由: 复用 harness 的ctx.llm,免密钥。OpenAI 兼容: 支持/chat/completions,与 linshenkx/prompt-optimizer 配置方式兼容。
- 安全存储: API Key 仅存储在宿主侧
~/.dsh/dsh-prompt-optimizer.json,浏览器端只可见掩码值,不暴露原始内容。
安装与启用¶
方式一:作为 bundle 安装(持久化)¶
适用于需要重启后依然生效的场景。
pnpm pack
dsh plugin --profile web add ./dsh-prompt-optimizer-0.1.0.tgz
方式二:开发注入(热插拔)¶
适用于本地开发调试,需要依赖 DSH_CHECKOUT 指向源码 checkout。
DSH_CHECKOUT=/path/to/dsh-checkout npm run build
dev_build_plugin <本目录>
dev_inject_plugin <本目录>
# 刷新 Web GUI 生效
配置说明¶
在输入框工具行点击「⚙」进入设置面板:
| 配置项 | 说明 |
|---|---|
| 后端模式 | 选择 DSH 内置路由(免密钥) 或 OpenAI 兼容供应商 |
| 供应商 | DeepSeek (https://api.deepseek.com/v1)、OpenAI 或自定义 |
| API Key | 配置 Key,实际存储于宿主机配置文件 ~/.dsh/dsh-prompt-optimizer.json |
| 温度 | 控制输出随机性,范围 0–2 |
| 最大输出 | 输出 Token 上限,范围 16–16384 |
| 轮数 | 优化轮数,范围 1–3(多轮=对上一轮结果再精炼) |
使用示例¶
- 手动触发优化:在输入框输入草稿,点击工具行的「✦ 优化」按钮,在弹窗中确认结果后点击「采用并发送」。
- 自动优化:在设置中开启「自动」开关,输入内容后直接按 Enter。系统会拦截发送请求,弹出对比框供确认或编辑后再提交。
- 连通性测试:在设置面板使用「测试连通」功能,验证 API Key 与端点配置正确。
性能与注意事项¶
- 性能开销: 拦截逻辑为 O(1),自动模式关闭时无性能开销。Client bundle 大小约为 55 KB(gzip ≈ 12 KB)。
- 开发依赖: 插件开发依赖 DSH_CHECKOUT 指向 DSH 源码 checkout。
- 许可证兼容: 插件自身为 MIT 许可证,兼容对象(如 prompt-optimizer)为 AGPL-3.0。插件未复制其源码或提示词,仅遵循其 OpenAI 兼容协议。
更多详情与源码,请参考 GitHub 仓库。