dsh-model-block-picker:按來源分塊的輸入框模型選擇器

前言

在 DeepSeek Harness(DSH)裏切換模型,默認做法是把所有來源的模型拉成一條長列表。賬號、官方 API、CodeBuddy、Qoder、TRAE 等渠道混在一起,模型一多就要反覆滾動和辨認。搜索和推理強度(Reasoning Effort)雖然還在,但「先想清楚從哪個渠道選」這一步並沒有被界面單獨照顧。

下面介紹社區客戶端插件 dsh-model-block-picker(維護者 liu19666):只替換輸入框(composer)右下角的模型位,把選擇器改成「先按來源分塊、再下鑽進塊內選模型」的兩級結構,並保留全局搜索、推理強度、速度/輸出詳略(在提供方支持時)等原有能力。插件當前 GitHub 星標爲 0,許可證 MIT,npm 包版本見倉庫 package.json(資料抓取時爲 1.1.0)。

這是什麼

dsh-model-block-picker 是 DSH 的客戶端(web)插件:通過 Cordis 插槽覆蓋官方輸入框模型選擇器 UI,數據仍走 DSH 自帶的 modelDirectories 服務,不重複請求後端。與 /model 命令彈窗共用同一份會話級模型目錄,任一入口切換,另一入口立即可見。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,並非官方應用商店。

核心功能

按來源分塊與兩級下鑽

點擊輸入框模型位,彈出的是按來源分塊的卡片網格,而不是平鋪長列表。每個渠道一張卡片,顯示來源名、模型數量;當前正在使用的來源有高亮描邊和「當前」標記。點卡片進入該渠道專屬模型列表;頂部「← 所有來源」或按 Esc 返回上一級。

默認分組順序爲 DeepSeek 賬號 → DeepSeek 官方 → 其餘按名稱;卡片可拖動排序,鬆手即保存。

全局搜索

面板頂部可直接輸入 v3、sonnet、r1 等關鍵詞,跨全部來源聚合匹配;回車選中首項。清空搜索回到分塊視圖。

推理強度與訂閱類偏好

當前模型支持 reasoning 時,浮層底部出現 Low → Max 的彩色可拖動滑條,點擊刻度文字可跳檔;右側顯示當前檔位,並提供「恢復模型默認」。若提供方暴露了 speedMode / outputVerbosity(例如部分 ChatGPT 訂閱類集成),底部會額外出現對應分段控件;不支持的模型或提供方則整行隱藏,不會出現無效開關。

顯示設置與偏好持久化

搜索框左側的 ⚙ 打開顯示設置:可按提供方整體開關,也可展開後逐個開關單個模型是否出現在選擇器裏;頂部顯示已隱藏數量,底部可一鍵恢復全部。

順序、隱藏來源、隱藏模型寫入瀏覽器 localStorage,鍵名爲 dsh-model-block-picker.prefs.v1;刷新與重啓 DSH 後保持。偏好按瀏覽器 profile 隔離,不隨 DSH 賬號同步。

主題

淺色與深色均使用 DSH 主題 token;深色下強調色爲 --dsw-alias-link(#7aaaff),觸發按鈕與同排截圖、麥克風等圖標保持同一設計語言。

安裝與啓用

資料中的安裝方式面向本機已有插件目錄(開發或自用),未給出 dsh plugin add github:... 一類命令。在 DSH 會話裏對 Agent 說明要安裝的本地路徑即可,由 Agent 調用:

plugin_manager(action: 'install_bundle', target: '<絕對路徑>')

安裝完成後需徹底退出 DSH 桌面端再重新打開(客戶端 bundle 有啓動基線緩存,僅刷新頁面不一定加載新代碼)。

卸載並回退到官方原生選擇器:

plugin_manager(action: 'remove_bundle', target: 'dsh-model-block-picker')

安裝前建議自行閱讀倉庫源碼與 MIT 許可證;插件在 DSH 客戶端進程權限下運行,與任何第三方插件一樣需要信任維護者。

典型用法

  1. 安裝並重啓 DSH 後,在會話輸入框右下角點擊模型位,先在各來源卡片中選渠道,再選具體模型。
  2. 若已知模型名片段,打開面板後直接搜索,回車選中第一項。
  3. 需要隱藏不用的渠道或模型時,點 ⚙ 進入顯示設置;需要固定常用渠道順序時,在分塊視圖拖動卡片。
  4. 當前模型支持推理強度時,在面板底部拖動滑條或點刻度;需要恢復提供方默認值時使用「恢復模型默認」。

/model 命令打開的彈窗仍爲官方樣式,本插件只替換 composer 上的模型位;兩者數據互通。已尋址的 subagent 會話不提供模型選擇,行爲與官方一致。

實現要點(便於排障)

插件註冊命名插槽 conversation.input.model(kind: "single"),優先級 priority: -20,高於官方 -10,從而覆蓋原生組件;卸載後自動回退。

瀏覽器端通過 ctx.modelDirectories 讀寫目錄,例如:

const directory = models.directoryFor(sessionId);
directory.store   // 快照:groups、current 等
directory.load()
directory.select({ provider, model, reasoningEffort })

客戶端沙箱要求頂層 inject 聲明服務白名單(如 slots、modelDirectories);未聲明的服務(例如直接讀 ctx.sessions)會導致註冊失敗。

排障時可搜宿主日誌前綴 [dsh-model-block-picker],或訪問瀏覽器診斷路由 /plugins/dsh-model-block-picker/diag,關注生命週期是否到達 registered-success。

適用場景與注意

適合:經常在多個模型來源之間切換、希望 composer 裏先選渠道再選模型的 DSH 用戶;需要保留搜索與推理強度,並願意用本地設置微調可見模型列表的人。

注意:

  • 僅覆蓋輸入框模型選擇器,不改變 /model 彈窗 UI。
  • 速度/輸出詳略僅對實現了對應偏好的提供方顯示。
  • 偏好存在本機 localStorage,換瀏覽器或 profile 不會同步。

鏈接

經過上面的步驟,若你主要痛點是「長列表裏找來源」,這個插件把選擇器收成按渠道分塊的兩級結構,並在不拆官方數據層的前提下保留搜索與推理強度;安裝與卸載都通過 plugin_manager 的 bundle 操作完成,退出重進後即可在 composer 模型位體驗分塊面板。

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

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

小夜