DSH Better Answer View:在對話裏嵌入圖表、卡片與可交互回答

前言

在 DeepSeek Harness(DSH)裏,模型往往用長段 Markdown 或表格把比較、趨勢、步驟講清楚。讀者要在文字裏來回掃讀,難以一眼對齊比例或連續調整參數。另開瀏覽器標籤頁可以做得更直觀,但會打斷會話節奏,狀態和追問也要自己銜接。

DSH Better Answer View 是面向 DSH 的客戶端插件:讓模型在合適時把內容渲染成回答正文裏的圖文塊,支持本機保存交互狀態與頁面修訂歷史。維護者爲 solstice621,在 SkillHub 目錄中歸類爲「客戶端」。倉庫 dsh-better-answer-view 採用 MIT 許可證;插件以當前 DSH 進程權限運行,安裝前建議自行查看源碼與許可證。

這是什麼

插件全稱 DSH Better Answer View,安裝標識同爲 dsh-better-answer-view。它是 DSH 的內嵌可視化與交互擴展:模型通過工具生成 HTML 片段,客戶端在聊天流中按位置標記插入圖表、卡片或帶滑塊、按鈕的交互塊;參數寫入本機,模型更新 HTML 時在兼容的狀態契約下保留用戶選擇,並可回看歷史版本。

README 寫明已在 DeepSeek Harness 網頁版 0.1.5-rc.3 與 桌面版 0.2.1-rc.3 上驗證;插件不設 Harness 版本白名單,SDK 以 peer 方式接受宿主提供的版本,啓動時會檢查所需工具註冊與認證 Fetch 接口,缺失時會明確報錯。其他版本仍需自行驗證。

0.3.3 起將舊包名 dsh-web-answer / better-view-for-dsh 統一爲本名;升級時應先停用並移除舊包再裝新包,避免同名工具重複註冊。頁面存儲目錄與回執格式保持兼容,歷史回答與已保存狀態仍可讀取。

核心功能

正文內嵌,而非整頁外鏈

安裝後正常提問即可,無需在提示詞裏要求「用網頁展示」或「生成卡片」。當趨勢、比較、步驟或交互結構有助於理解時,插件通過模型指令引導使用緊湊內容塊;簡單事實、普通說明、確認和代碼問答仍保持普通文字。視覺內容只出現一次,周圍文字負責引入與銜接,不在 Markdown 裏再抄一遍整表。

0.2.0 起支持同一條回答中 文字 → 圖文塊 → 後續文字 的順序,不另開新頁。0.2.1 起默認按主題拆分:兩個及以上獨立可視化主題時,通常分 2–4 個小塊嵌入正文;多個卡片堆進單個 HTML 不算獨立嵌入。0.3.0 起提供統一的緊湊樣式(比較圖、關鍵數字、時間線、決策依據、交互控件共用明暗主題與間距),嵌入塊按內容自然展開,移除原先的高度上限與「展開高度」按鈕。

本機狀態與修訂

頁面數據默認保存在 $DSH_HOME/web-answer/;未設置 DSH_HOME 時使用 ~/.dsh/web-answer/。可在插件配置中用絕對路徑指定 storageDir。

模型側通過 render_answer、get_answer、update_answer 創建與更新頁面;HTML 存本機,聊天裏只返回小型回執。回執中的 embed 字段爲位置標記,形如獨佔行的 :::web-answer <頁面 UUID> 與閉合的 :::,客戶端在該處渲染塊。更新前應先 get_answer 取最新 expectedRevision,避免覆蓋併發修改。相同 stateSchemaVersion 時更新 HTML 會保留當前狀態;變更該版本號須提供新的 initialState。

頁面內可通過 window.answer.getState()、setState()、ask() 等 Bridge API 保存參數並向當前會話準備追問(用戶確認發送後才提交)。

頁面編寫約定(模型生成 HTML 時)

優先提交表達一個視覺主題的 HTML 片段;可複用 .answer-metric-grid、.answer-bar-list、.answer-timeline 等內置類,或使用 --answer-fg 等主題變量。支持內聯 CSS 與經典 JavaScript、原生 SVG/Canvas;不支持 CDN、外鏈腳本和 type="module"。腳本應在 DOM 已插入後直接初始化,不要等待 DOMContentLoaded。卡片使用自然高度,避免 100vh 殼層與把普通長文塞進固定高度滾動面板。

安裝與啓用

推薦從倉庫 main 分支安裝;倉庫已含預構建客戶端入口,一般無需本地構建。

CLI / Web 環境:

dsh plugin --profile web add "github:solstice621/dsh-better-answer-view#main"

DSH 桌面版在插件管理器中填寫:

github:solstice621/dsh-better-answer-view#main

桌面應用與單獨安裝的 CLI/Web 使用不同 profile,插件不會自動同步:桌面管理器使用 desktop profile,上述 CLI 命令只安裝到該 CLI 的 web profile。若 DSH 已在運行,安裝後需重啓並刷新頁面。

從源碼構建並鏈接到指定 profile 時,在項目目錄執行(將 web 換成實際 profile 名):

npm run build
dsh plugin --profile web add "link:$PWD" --ignore-scripts --offline
dsh --profile web

移動項目目錄會使 link: 失效。歷史 GitHub Release 帶有各自版本的兼容說明,可按需選用。

典型用法

日常問答

與平時一樣提問。README 中的示例如:比較兩個收費方案在不同使用次數下的成本並說明臨界點;或詢問財報與股價反應——回答可先表格比較,再用正文解釋,並用時間線區分不同時點。簡單算術(如「17 乘以 6」)仍直接文字回答,不會強行加卡片。

交互與狀態(獨立演示)

倉庫提供不依賴模型的本地演示:需 Node.js 22+,在項目目錄執行 npm ci --legacy-peer-deps、npm run build、npm run demo,瀏覽器打開 http://127.0.0.1:3091。可拖動滑塊重算升級天數、刷新後保留參數、使用預設按鈕改需求並查看修訂效果;頁面內「討論當前階段」會在會話外準備追問文本,點擊發送才提交。環境變量 PORT 可改端口,WEB_ANSWER_DATA_DIR 可改演示數據目錄(默認 work/demo-data/)。

在 DSH 中可嘗試類似提示:設計帶三階段 XP 的升級計算器,允許調整每次任務獎勵並比較各階段天數——模型生成的塊可本地重算,狀態持久化到上述存儲目錄。

適用場景與注意

適合:需要在同一會話裏閱讀比較表、趨勢、時間線或輕量交互(調參、選階段後再追問)的 DSH Web/桌面用戶;希望 HTML 與狀態留在本機、可修訂而非每次全量重問的場景。

注意:

  • 插件依賴宿主註冊的工具與客戶端注入能力;缺少接口時啓動會報錯,需與 README 中已測 DSH 版本對照或自行驗證。
  • 模型是否拆分多塊、是否使用卡片,由模型指令與真實回答決定,README 強調應以實際模型測試爲準。
  • 只解析同輪成功工具回執中的 embed 標記,不執行用戶粘貼的示例標記。
  • 安裝第三方插件等同於擴展 DSH 能力邊界,請在信任維護者與許可證的前提下使用。

結尾

DSH Better Answer View 把「更適合用圖或控件表達」的部分放進回答正文,併爲本機頁面保留狀態與版本,減少在純 Markdown 與外鏈頁面之間來回切換。目錄頁:https://www.skillhub.cn/plugins/solstice621/dsh-better-answer-view;源碼與完整說明:https://github.com/solstice621/dsh-better-answer-view。

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

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

小夜