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 倉庫。