前言¶
在 DSH Web 裏和模型對話,常見做法是複製助手回覆裏某段文字,貼到輸入框再寫問題。多段引用時,消息會越堆越長,氣泡裏也很難區分「原文」和「你的追問」。
dsh-annotation 是 omdsh-dev 維護的 DSH 客戶端插件(GitHub 約 95 stars)。它在瀏覽器端實現「選中 → 批註 → 回車發送」:批註塊隨消息發給模型,但你的氣泡裏只顯示問題和「批註 ×N」標籤,模型回覆按 Annotation N 逐條對照。插件以官方 bundle 形態發佈,不改 DSH 核心文件。
這是什麼¶
dsh-annotation 是 DSH Web 的選中批註插件,維護者爲 omdsh-dev,分類爲客戶端插件,許可證 MIT。
形態上是官方 bundle 插件:package.json 裏聲明 dsh.bundle 與 dsh.client,經 client-modules 把 client.js 注入瀏覽器;Node 側爲空實現。cordis.patch.yml 僅插入自身 id 一次,profile patch 保持 [],不修改 DSH 本體。
核心功能¶
下面按交互順序介紹已覈實的能力。
選中即批註¶
在助手回覆裏選中任意文字,工具條點「批註」,寫下批註內容(可留空,僅標記原文)。點選外部或按 Esc 收起。原文位置會出現藍色編號腳標和高亮,視口內錨定並做碰撞避讓,滾出屏幕也不丟失。
跨回合收集¶
批註可跨消息、跨回合累積,編號從 1 開始遞增。輸入框旁出現「批註 ×N」標籤,懸浮可查看全部批註,也可逐條刪除。
回車隨消息發送¶
直接回車,批註塊與輸入框裏的問題一併發給模型。模型收到完整批註協議塊;你的氣泡裏不出現批註塊文本,只顯示問題和「批註 ×N」標籤。發送瞬間在瀏覽器繪製前從 DOM 隱藏批註塊,實現零閃爍;刷新後歷史消息會自動修復顯示。
回覆逐條對照¶
插件向消息注入格式指令,引導模型按 Annotation 1:… 至 Annotation N:… 逐條回應。回覆裏的 Annotation N: 會渲染爲可懸浮芯片,hover 可查看對應原文與批註內容。UI 文案與批註協議塊跟隨 DSH locale 服務(zh/en)即時切換。
安裝與啓用¶
安裝走官方 bundle 路徑,任選其一:
# npm 公開包(無需 npm 賬號)
dsh plugin --profile web add @changfenhuang/dsh-annotation
# 從 GitHub 公開源碼安裝
dsh plugin --profile web add git+https://github.com/omdsh-dev/dsh-annotation.git
# 本地路徑(開發調試)
cd /path/to/dsh-annotation
dsh plugin --profile web add .
僅作 Node 依賴、不註冊到 DSH 時:
npm install @changfenhuang/dsh-annotation
npm install 不會把插件註冊進 DSH,在 DSH 中使用時仍需執行 dsh plugin add。
若在 v1.4.2 之前裝過舊包名,先遷移:
dsh plugin --profile web remove @omdsh-dev/dsh-annotation
dsh plugin --profile web add @changfenhuang/dsh-annotation
安裝後按平臺重啓 web 服務。Linux/WSL 下常見命令:
systemctl --user restart dsh-web
部分容器環境無需重啓,client.js 按請求 no-cache 提供,硬刷新(Ctrl+Shift+R)即可。
自檢是否生效:
dsh --profile web --dump-config | rg "id: dsh-annotation" # 必須恰好 1 行
curl -s -o /dev/null -w '%{http_code}\n' "http://127.0.0.1:3080/plugins/@changfenhuang/dsh-annotation/client.js" # 200
注意:只做 dsh plugin add,不要在 profile 或 home 的 cordis.patch.yml 裏重複 insert 同 id。
典型用法¶
交互流如下:
選中助手文字 ──▶ 工具條「批註」──▶ 寫批註/留空保存 ──▶ 原文亮藍編號+高亮
▲ │
└────────────── 任意多條、跨回合累積 ◀────────────────┘
│
▼
輸入框旁「批註 ×N」標籤(hover 看內容/刪除)
│
回車發送
▼
模型收到:批註塊(編號+原文+批註)+ 你的問題
你的氣泡:只顯示問題 +「批註 ×N」標籤
模型回覆:Annotation 1:… Annotation 2:…(可懸浮芯片)
實際操作可概括爲:
- 在助手回覆中選中要討論的文字,點「批註」,寫下備註(可留空)。
- 繼續對話、繼續選中並批註,多條會累積在「批註 ×N」裏。
- 在輸入框寫好問題,回車發送。
- 查看模型按
Annotation 1、Annotation 2等編號逐條回覆;hover 芯片可對照原文與批註。
中文環境下,發給模型的批註塊格式類似:
我批註了以下 N 處內容…
1. 原文
批註:…
請用「Annotation 1:…」…
提問:
適用場景與注意¶
適合需要在 DSH Web 裏對助手長回覆做分段追問、又不想把大段引用塞進氣泡的場景。純瀏覽器端實現,不依賴 Node 側邏輯;與 dsh-focus-chat 聚焦會話視圖兼容。
安裝前請注意:
- 插件以當前
dsh進程權限運行,安裝前應自行檢查 GitHub 源碼 與 MIT 許可證。 - 當前 npm 包名爲
@changfenhuang/dsh-annotation(v1.4.2),與 GitHub 倉庫omdsh-dev/dsh-annotation對應;舊名@omdsh-dev/dsh-annotation已棄用。 - 需要 Node >= 20,peer 依賴 cordis ^4.0.0-rc.7 或 ^4.0.1。
DSH 生態主張「一切皆插件」;社區目錄 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-annotation 把「選中批註 → 隨消息發送 → 編號對照回覆」做成一條完整鏈路,氣泡側隱藏批註塊、回覆側懸浮芯片,改動集中在 bundle 插件內。可在目錄頁查看條目,或到 GitHub 閱讀完整文檔與架構說明。
- 目錄頁:https://www.skillhub.cn/plugins/omdsh-dev/dsh-annotation
- GitHub:https://github.com/omdsh-dev/dsh-annotation