前言¶
DeepSeek Harness (DSH) 採用插件化架構,擴展能力通過插件實現。在 Web 界面中直接調用本地模型通常需要手動管理 llama-server 進程或通過外部工具。vmarcelo49/dsh-local-models 插件爲此提供瞭解決方案,它直接在 DSH 的 Web 界面中添加了“Local Models”選項卡,允許用戶選擇 .gguf 文件,調整推理參數,並通過 llama-server (llama.cpp) 啓動模型。
該插件由 Vmarcelo49 維護,採用 MIT 許可證。它不 fork llama.cpp,而是直接使用上游二進制文件,並提供了零構建步驟的安裝方式。
核心功能¶
模型選擇器¶
界面內嵌文件瀏覽器,僅顯示目錄和 .gguf 文件。後端通過解析 GGUF 頭部信息,展示架構、量化類型、層數、上下文長度以及 MoE 檢測結果。
啓動選項¶
提供細粒度的模型加載參數控制:
* 上下文滑塊:以 8K 爲步長調整,上限受限於模型訓練的上下文長度。
* KV Cache 量化:分別選擇 K 和 V 的量化類型,界面顯示每元素字節數。
* MTP 與思考:固定 MTP 草稿深度(0-7)和思考級別(off/low/medium/xhigh),支持保留思考內容的開關。
* 視覺與 MoE:支持可選的視覺投影儀(mmproj)和 MoE 專家放置設置。
實時 VRAM 估算¶
系統會檢測 GPU(NVIDIA 通過 nvidia-smi,AMD 通過 sysfs),計算權重、KV 緩存、計算圖開銷與 GPU 總顯存的對比。界面會顯示“適合”、“安全餘量”以及“最大上下文”三行建議值。
配置文件與路由模式¶
- 配置文件:保存命名後的啓動配置,支持一鍵重載。
- 路由模式:通過 OpenAI 兼容端點提供服務。模型按需加載,默認同時駐留一個。啓動路由器後,插件會自動將模型註冊爲 dsh 的 LLM 提供商路由。
終端覆蓋¶
提供實時日誌查看功能,可以直接在選項卡內查看 llama-server 的運行狀態和輸出。
安裝與啓用¶
安裝步驟¶
該插件通過 pnpm 管理依賴,需確保 pnpm 已在系統 PATH 中。
# 從 npm 註冊表安裝
dsh plugin --profile web add dsh-local-models
# 或直接從 Git 克隆安裝(無構建步驟)
dsh plugin --profile web add github:Vmarcelo49/dsh-local-models
安裝後,插件會被寫入 dsh.profile.bundles 數組。由於涉及 Node 端路由注入,安裝後必須重啓 DSH Web 進程,然後刷新瀏覽器,並在設置中打開 Local Models 選項卡。
前置要求¶
- DSH 需要啓用
web配置文件。 - 系統中需安裝
llama-server二進制文件(上游llama.cpp)。
典型用法¶
- 加載模型:在 Local Models 選項卡中,通過文件瀏覽器選擇一個
.gguf文件。 - 調整參數:根據 VRAM 估算結果,調整上下文長度、KV 量化類型、MTP 深度以及思考級別。保存配置後點擊加載。
- 註冊與使用:模型加載成功後,點擊“Register in dsh”按鈕。該插件會將運行中的服務註冊爲
llm-pi-ai提供商路由,隨後可在 DSH 的通用模型選擇器中找到並調用。 - 配置路由:如果想在一個端點中切換多個模型,可以將配置保存爲 Profiles,然後點擊“Start router (from profiles)”。
- 自動啓動:在 Router 卡片中勾選“Start the router automatically when dsh starts”,插件會在 DSH 啓動時自動加載路由器並註冊模型,無需手動操作。
配置說明¶
插件運行依賴以下環境變量(可通過代碼塊 lib/client.js 修改默認值):
| 變量名 | 默認值 | 說明 |
|---|---|---|
LOCAL_MODELS_PORT |
8080 |
llama-server 監聽端口 |
LOCAL_MODELS_ROUTER_MAX |
1 |
路由模式下同時駐留的最大模型數 |
LOCAL_MODELS_MMPROJ_CPU |
1 |
視覺投影儀權重是否保持在 RAM 中(0 爲全 GPU) |
DSH_HOME |
~/.dsh |
DSH 數據目錄 |
注意事項¶
- 無版本門控:該插件聲明無 peer dependencies,因此不會因 DSH 版本不匹配而被拒絕安裝。
- 變更生效時機:Node 端的配置或路由變更需要重啓 DSH;客戶端界面的變更僅需刷新頁面。
- 資源管理:路由模式支持閒置驅逐(Idle eviction),默認 30 分鐘無請求後卸載模型以釋放顯存,防止資源耗盡。