前言¶
在 DeepSeek Harness(DSH)裏,Composer 輸入區通常有一個「模型座位」:選 Provider、選模型,有時還要調思考強度(reasoning effort)。社區裏曾有兩個客戶端插件分別改同一座位——dsh-client-ui-gpt-helper 負責外觀、粒子思考滑塊與配色面板;dsh-model-provider-prefix 負責 Provider / 模型雙列卡片。二者都替換 conversation.input.model 上的同一插槽,裝在一起會衝突,只能二選一。
dsh-client-ui-model-seat 由 HimA6652 維護,把上述能力合併爲一個控件(當前版本 0.2.2,MIT 許可證)。它仍以純客戶端方式運行:不發起網絡請求、不訪問憑據、不加載 host 模塊。下文介紹它解決什麼問題、怎麼用,以及和舊插件的關係。
這是什麼¶
一句話定位:Composer 的模型選擇與思考強度控制,合併成單一模型座位插件。
維護者與來源:
- 維護者:HimA6652(
dsh-client-ui-gpt-helper與dsh-model-provider-prefix分別有貢獻者記錄在package.json) - 分類:客戶端(SkillHub 目錄歸類爲「可安裝客戶端」)
- 目錄頁:SkillHub - dsh-client-ui-model-seat
- 源碼:GitHub - HimA6652/dsh-client-ui-model-seat
運行要求:engines.dsh 爲 >= 0.2.1-rc.2。插件在 profile 中插入一行(id: model-seat),並以 priority: -2 註冊模型座位,從而壓過原兩個插件常用的 -1 或內置控件的 0,避免同槽位硬碰硬——但仍應用 這一個 替代二者,而不是與它們並列安裝。
核心功能¶
下面按界面表面說明行爲(均來自插件 README)。
模型觸發器與雙列卡片¶
- 模型觸發器顯示
provider/model與 caret;點擊打開 Provider + 模型雙列卡片,再點一次關閉。 - 若 Composer 行上已由其他 UI(例如
dsh-providers-hub的 JetHub 徽章在conversation.input.right)展示 Provider,觸發器會去掉重複前綴,只顯示模型名。 - Provider 列:會話目錄中的全部 Provider、各 Provider 模型數量、當前 Provider 勾選;加載失敗的 Provider 顯示爲可重試行。
- 模型列:列頭顯示指針下的 Provider;列內約 30px 高的搜索框。懸停 Provider 列時只切換右側模型列表,卡片外框不隨內容跳動(合併版專門消除了舊實現裏「高度隨懸停內容震盪」的問題;舊 bundle 上曾測到 900ms 內約 27 次高度翻轉)。
跨 Provider 搜索¶
在模型列搜索框輸入時,一次檢索覆蓋所有 Provider 的模型,每行附帶 Provider 名稱。搜索不會改變卡片佈局(仍爲雙列),避免輸入時卡片反覆改尺寸造成閃爍。
說明:搜索匹配模型 name 與 id,不匹配 Provider 名稱;例如搜 ollama 會通過模型 id 命中 ollama/qwen,而不是搜 Provider 列。
思考強度(Effort)¶
- Effort 觸發器顯示當前思考檔位(如
Max、Medium等);僅當選中模型聲明瞭 thinking levels 時才渲染。 - 點擊打開 粒子思考滑塊面板,沿當前模型的檔位階梯拖動;支持鍵盤方向鍵 / Home / End。
- 面板頭部:左側當前檔位(點擊可回到雙列);閃電按鈕可在最高檔與離開前的檔位間跳轉;Reset 恢復模型默認檔位。粒子軌道上的 drift 始終運行(不再讀寫舊版
dsh-client-ui-model-seat:fast:v1鎖定狀態)。
外觀與幾何¶
- 外觀面板快捷鍵:
Ctrl+Shift+Alt+G。支持明暗兩套 token、方案庫、JSON 導入導出、重置、跨側套用與實時預覽;無 profile 級配置鍵,狀態落在瀏覽器localStorage(見下文配置表)。 - 卡片寬度:雙列布局約 416px,思考面板約 300px,均受視口 clamp;空間不足時可翻到觸發器上方。列內長列表內部滾動,外框高度在打開期間按佈局凍結測量,避免懸停改高。
安裝與啓用¶
DSH 採用「一切皆插件」的擴展方式;SkillHub 是社區目錄站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行審閱源碼與 MIT 許可證——插件以當前 DSH 進程權限在瀏覽器端執行。
環境要求:DSH >= 0.2.1-rc.2。
若你仍在使用兩個舊插件,先卸載再裝合併版(不要三者並存):
dsh plugin remove dsh-client-ui-gpt-helper
dsh plugin remove dsh-model-provider-prefix
官方 README 給出的安裝方式如下(registry 與源碼通道等價樹;建議 釘版本 以免 bare name 解析到較舊發行版):
dsh plugin add dsh-client-ui-model-seat@0.2.2 # from the registry (pin it, see below)
dsh plugin add dsh-client-ui-model-seat # from the registry (bare name)
dsh plugin add github:HimA6652/dsh-client-ui-model-seat # from source
dsh plugin add link:/absolute/path/to/dsh-client-ui-model-seat # local checkout
說明:desktop profile 不能由普通 CLI 直接改 profile 文件;若使用桌面宿主,需按倉庫 MAINTENANCE.md 中「安裝、升級、回滾」使用桌面 host CLI。
典型用法¶
安裝並啓用 Web 客戶端 profile 後,用法即 Composer 輸入區上的兩個觸發器與一張卡片:
- 選模型:點模型觸發器 → 左列懸停 Provider → 右列點選模型;或直接在右列搜索框輸入關鍵字跨 Provider 過濾。
- 調思考強度:模型支持 thinking levels 時,點 Effort 觸發器 → 拖動粒子滑塊或用手柄區按鈕;點 Effort 左側文字可回到雙列選模界面。
- 改主題色:按
Ctrl+Shift+Alt+G打開外觀面板,編輯明暗側 token 或導入 JSON;paused: true時關閉全部自定義色(面板總開關)。
開發者若需在不污染本機 ~/.dsh 的前提下驗收 bundle,README 提供了臨時 DSH_HOME + seatcheck profile + npm run live 的流程;默認 npm run live 不寫賬戶模型選擇,--publish 會點擊模型行並斷言觸發器文案變化,僅適合一次性目錄。
DOM 與測試可依賴穩定鉤子,例如根節點 [data-model-seat="root"]、卡片 [data-model-seat="menu"](含 data-pane、data-ready 等)、列 .ms-col[data-col="providers"|"models"];自 0.1.1 起不再發射舊插件的 data-gpt-helper / data-dsh-pm-* 前綴。
適用場景與注意¶
| 你如果是… | 這個插件提供… |
|---|---|
| 需要在模型旁同時看到 Provider | 一個觸發器顯示 provider/model,一張卡片雙列完成選擇 |
| Provider 列表很長 | 懸停左列換右列模型,卡片位置固定 |
| 經常調 reasoning effort | 獨立 Effort 觸發器 + 粒子滑塊 |
| 曾裝兩個舊插件只能二選一 | 一個座位合併二者能力 |
權限與安全:純客戶端 UI,不訪問網絡與憑據;安裝前仍應檢查 lib/client.js 等入口是否符合你的策略。
已知限制(README「Known limitations」):
- 同一
conversation.input.model槽位若另有插件也註冊相同 priority,由掛載順序決定誰生效,本插件不仲裁。 - 列與列之間無鍵盤導航;改 Provider 依賴懸停與點擊;Tab 會離開卡片。
- 卡片切換 pane / Provider 時不做高度動畫(有意避免舊 resize 循環);窗口 resize 會重新 clamp 已打開卡片。
- 配色僅存本瀏覽器 profile 的
localStorage,不隨賬號跨機器;遷移靠面板 JSON。 - 僅 Web 客戶端表面(
dsh.client.platform: "web",桌面應用渲染同一 Web UI);終端表面不受影響。
配置存儲(無 profile YAML 鍵):
| Key | 含義概要 |
|---|---|
dsh-client-ui-model-seat:config:v1 |
{ version: 3, hotkey, paused, crossApply, slots, schemes, sides };不讀取舊版 dsh-client-ui-gpt-helper:config:v1 |
加載時、同頁 storage 事件、窗口重新聚焦時會重讀該記錄。
結尾¶
dsh-client-ui-model-seat 把曾互斥的兩個模型座位插件收成一套:雙列選模、全局搜索、思考強度粒子滑塊與雙主題外觀面板,並用固定幾何與內部滾動消掉懸停選 Provider 時的卡片抖動。若你正在 DSH Composer 上長期選模型、調思考檔位,可優先用此插件 替代 舊二者,並釘住 @0.2.2 安裝。
- 目錄頁:https://www.skillhub.cn/plugins/HimA6652/dsh-client-ui-model-seat
- GitHub:https://github.com/HimA6652/dsh-client-ui-model-seat