前言¶
在 DSH Web 會話裏,如果想針對助手回覆中的某句話繼續追問,常見做法是手動複製、粘貼到新消息裏。這樣做容易丟失上下文,也不方便讓模型明確知道你要回應的是哪一段。
dsh-annotation-patched 是 DSH Web「選中引用」插件的本地增強版。它允許用戶選中助手消息中的文字,點擊「引用」生成引用塊;發送時引用塊會隨消息一起發出,模型按編號逐條回應,回應中帶有可懸停展開的引用標記。
下面介紹它的定位、功能、安裝方式和使用注意。
這是什麼¶
dsh-annotation-patched 由 DDDFXYqiming 維護,是一個面向 DSH Web 的瀏覽器端插件,採用 MIT 許可證。
它解決的問題比較具體:把 DSH Web 中助手消息裏的選中內容轉成可發送的引用塊,並在模型回覆裏按編號逐條對應。倉庫標題與安裝路徑使用 dsh-annotation-patched;package.json 中的包名寫作 @dsh-external/dsh-annotation-patched。本文按 GitHub 倉庫名介紹。
核心功能¶
引用助手消息¶
在 DSH Web 中選中助手消息裏的文字,點擊「引用」,可以補一句說明,也可以直接留空,然後回車發送。引用塊會拼進消息一起發出。
發送後,模型會按編號逐條回應每條引用,回應中帶有可懸停展開的引用標記。
這個插件採用單按鈕制:工具欄只保留「引用」按鈕,引用需要顯式點擊按鈕確認。複製、雙擊讀詞這類操作不會自動變成引用。
舊引用清理¶
發送確認制會清理舊引用。拼稿前會剝離草稿中殘留的舊引用塊,避免舊引用重複帶入新消息。
自動引用在回車發送和點擊發送按鈕時都會觸發。
多行輸入標籤同步¶
多行輸入時,「引用 ×N」標籤會隨輸入框位置持續同步,不會停留在舊座標上。
本地補丁重放¶
倉庫提供補丁重放工具,可按 patches/manifest.json 清單重放本地增強補丁。
升級基座時可以運行:
node scripts/apply-patches.mjs --fetch <上游commit> --out client.js
這一步會基於清單重放補丁,生成新的 client.js。
運行依賴¶
插件聲明 Web 端客戶端注入,並聲明以下 peerDependencies:
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.6
@deepseek-ai/dsh-client-ui-conversation ^0.1.0-rc.6
engines 要求:
node >=20
安裝與啓用¶
從 GitHub 安裝¶
使用 DSH Web 插件安裝命令:
dsh plugin --profile web add github:DDDFXYqiming/dsh-annotation-patched
這條命令用於把插件安裝到 web profile 下。
本地開發¶
本地開發時也可以直接使用倉庫目錄:
dsh plugin --profile web add <本目錄>
這條命令適合在本地修改 client.js 或其他插件文件時直接使用。
修改後刷新¶
這是瀏覽器端插件,修改 client.js 後需要 Ctrl+F5 強刷,或者換瀏覽器生效。
如果通過 pnpm 更新,可能會覆蓋 node_modules 裏的副本,此時需要以本目錄爲源重新 link。
典型用法¶
1、選中助手消息中的文字,點「引用」。
2、可以補一句說明,也可以留空。
3、按回車發送,或點擊發送按鈕。
4、引用塊拼進消息發出。
5、模型按編號逐條回應,回應裏帶有可懸停展開的引用標記。
本地開發時,完成修改後記得強刷瀏覽器,再驗證引用塊和模型回應是否符合預期。
適用場景與注意¶
適合以下場景:
- 需要在 DSH Web 中對助手消息中的某句話做針對性追問。
- 希望把選中內容轉成引用塊,而不是手動複製粘貼。
- 在本地維護 DSH Web 插件,並希望重放本地增強補丁。
需要注意:
- 只支持選中助手消息,不處理用戶自己發送的消息。
- 強依賴 DSH Web 的 DOM 結構,DSH UI 升級可能讓插件失效。
- 修改
client.js後需要Ctrl+F5強刷或換瀏覽器生效。 pnpm更新會覆蓋node_modules裏的副本,須以本目錄爲源重新 link。- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 - 本插件採用 MIT 許可證,並保留上游版權聲明。
鏈接¶
- 社區目錄頁:https://www.skillhub.cn/plugins/DDDFXYqiming/dsh-annotation-patched
- GitHub 倉庫:https://github.com/DDDFXYqiming/dsh-annotation-patched