DSH 生態秉承“一切皆插件”的理念,在開發 Web 界面時,開發者常需要背景裝飾或交互反饋。下面介紹 dsh-ui-pet,一個爲 DSH Web GUI 設計的 Canvas 精靈寵物插件。
它是什麼¶
dsh-ui-pet 是一個基於 Canvas 的程序化繪圖寵物,無需額外的素材文件。它作爲 DSH 的 bundle 和 client plugin 存在,渲染在 shell.overlay 層,固定定位在視口右下角。由於設置了 pointer-events:none,它不會阻擋頁面內容的點擊操作,且層級低於其他覆蓋層和對話框,完全作爲背景裝飾存在。
核心功能¶
- 程序化繪製:寵物完全由代碼生成,無需加載圖片資源,包含 DPR(設備像素比)感知渲染。
- 活動檢測:通過 DOM 觀察
data-*鉤子(如data-composer-card和data-chat-flow)來檢測狀態。 - 交互反應:
- 打字時:寵物向輸入框傾斜,瞳孔聚焦,尾巴擺動加快,顯示打字氣泡。
- 流式傳輸時:寵物切換爲沉思姿態,頭部微抬,顯示忙碌氣泡。
- 空閒時:寵物呼吸、眨眼,眼睛跟隨鼠標移動,頭部隨視線微調。
- 非阻塞設計:使用
pointer-events:none屬性,確保寵物不會影響用戶與界面的交互。
安裝與啓用¶
該插件通過 DSH 的 CLI 進行安裝和註冊。
dsh plugin --profile web add @nkj/dsh-ui-pet
安裝後,CLI 會自動將依賴聲明合併到 dsh.profile.bundles,並在下次啓動時提供 /plugins/@nkj/dsh-ui-pet/client.js。
典型用法¶
啓動 Web profile 後,在瀏覽器中訪問應用:
- 輸入交互:在編輯器中打字,寵物會實時向輸入框方向傾斜,並顯示打字動畫。
- 流式響應:發送消息後,當助手開始流式輸出回覆時,寵物會切換到工作姿態。
- 觀察細節:移動鼠標,寵物的眼睛會追蹤光標,頭部隨之轉動,尾巴會自然擺動。
適用場景與注意¶
- 目標版本:插件運行時兼容 DSH
0.1.1-rc.2(webprofile)。 - 性能與權限:插件僅運行在瀏覽器端進行展示,不會觸及模型請求,也不會影響 KV 緩存。
- 已知限制:
- 渲染層級:由於 DSH 的源碼限制,插件無法渲染在應用內容下方。它是通過半透明和角落定位來避免遮擋閱讀區域。
- 狀態判斷:忙碌狀態檢測基於 DOM 變動的啓發式算法,短暫的非流式操作(如工具展開)可能會觸發工作姿態。
- 無類型支持:構建產物是獨立的,不依賴
@deepseek-ai/*內部包,但在 DSH 單體倉庫內開發時需恢復類型定義。
這是一個輕量級的趣味插件,適合希望在不修改 DSH 核心源碼的前提下,爲 Web 界面增加擬人化細節的開發者。