dsh-prompt-optimizer:DSH Web GUI 输入提示词优化插件

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(多轮=对上一轮结果再精炼)

使用示例

  1. 手动触发优化:在输入框输入草稿,点击工具行的「✦ 优化」按钮,在弹窗中确认结果后点击「采用并发送」。
  2. 自动优化:在设置中开启「自动」开关,输入内容后直接按 Enter。系统会拦截发送请求,弹出对比框供确认或编辑后再提交。
  3. 连通性测试:在设置面板使用「测试连通」功能,验证 API Key 与端点配置正确。

性能与注意事项

  • 性能开销: 拦截逻辑为 O(1),自动模式关闭时无性能开销。Client bundle 大小约为 55 KB(gzip ≈ 12 KB)。
  • 开发依赖: 插件开发依赖 DSH_CHECKOUT 指向 DSH 源码 checkout。
  • 许可证兼容: 插件自身为 MIT 许可证,兼容对象(如 prompt-optimizer)为 AGPL-3.0。插件未复制其源码或提示词,仅遵循其 OpenAI 兼容协议。

更多详情与源码,请参考 GitHub 仓库。

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

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

小夜