前言¶
在 DeepSeek Harness(DSH)裏接多家模型供應商,通常要動 pi-ai 適配器、DeepSeek 適配器、模型選擇器和 Models 設置頁等多處能力;官方發版節奏與 @earendil-works/pi-ai 上新模型也不一定同步。若希望在同一套 Web 界面裏改供應商、勾選模型、看額度,並在需要時用 npm 最新 pi-ai 而不等 dsh 升級,就需要把這幾塊能力集中替換並自行維護。下面介紹社區插件 @ztyss/dsh-llm-provider(維護者 Ztyss,分類:模型推理)如何全量接管上述模塊,並提供配置與額度展示。
這是什麼¶
@ztyss/dsh-llm-provider 是一個 DSH 插件:接管官方的 llm-pi-ai、llm-deepseek 適配器、ui-model-selection 模型選擇器與 ui-settings-models Models 設置頁,改爲插件自維護的 pi-ai 橋接、模型選擇器、額度查詢與供應商管理界面。本倉庫 fork 自 imchangchang/dsh-llm-provider,此後由 Ztyss 獨立維護;README 標註當前版本 v0.2.6,安裝走 main 分支。lib/ 構建產物隨倉庫分發,裝完即用。
核心功能¶
pi-ai 橋接與「啓用最新版」¶
設置頁 Provider → pi-ai 橋接 提供 「啓用最新版 pi-ai」 開關:讓官方 pi-ai 適配器運行在從 npm 拉取的 @earendil-works/pi-ai 最新版上,替代 DSH 自帶版本;pi-ai 支持新模型時可不必等待 dsh 發版。
撥 ON 時,從 npm registry 取 dist-tags.latest,經 sha512 校驗、解壓、依賴閉包與 import 體檢後,落到安全區 $DSH_HOME/llm-provider-bridge/pi-ai/<版本>/;重啓後橋接指向該副本,體檢失敗則自動回退,開關始終有兜底。撥 OFF 回退 DSH 自帶版,已下載文件保留,再撥 ON 無需重下。開關偏好寫在 $DSH_HOME/llm-provider-bridge/vendor-status.json,避免插件目錄被包管理器整棵重建時偏好丟失。
觸網僅與開關 ON 相關:撥開關時一次,以及每次啓動檢查一次(本地無就緒副本則補下載;已有副本也會查 npm 是否有更新)。撥 OFF 不觸網。界面版本行展示當前在用版本及來源(DSH 自帶 / npm 最新 / vendor),右側在下載中、待重啓等狀態時給出說明;需重啓由 piAiNeedsRestart 推導,下載中約 2s 輪詢。
模型服務設置頁¶
- 中英雙語:走 dsh 的 locale 機制,切換語言實時跟隨。
- 供應商卡就地編輯:顯示名、API 地址、協議、憑據名在卡片上直接改;無改動時不顯示編輯痕跡,有草稿纔出現「保存修改 / 取消」。路由 ID 只讀。
- 模型清單即勾選:展開「模型(N)」勾選啓用;保存走
POST /provider/set-models,服務端校驗並拒絕內置路由;「跟隨目錄(還原)」即刪除該鍵回到目錄全量。 - custom 路由候選:id 不在 pi-ai 目錄裏的路由,按 baseURL 映射到同端點目錄 provider,候選來自目錄模型;與手填同名以目錄元數據爲準。
- 模型測試:未寫 baseURL 的路由可回退 pi-ai 工廠官方默認端點(目錄 id 纔有)。
- 保存即生效:新增、刪除、勾選後本地詳情索引、目錄與額度快照同步更新,不必等宿主慢刷新。
- 刪除確認:含代價說明,並可「導出配置(YAML)」備份(密鑰不導出)。
- 能力徽章:支持 / 明確不支持 / 未知 三態;目錄查不到的模型從路由聲明與適配器補齊。
控制台 Cookie 存儲¶
需要控制台會話的 provider(如 StepFun Step Plan 點數)將 Cookie 存在 $DSH_HOME/llm-provider-bridge/.cookies.yaml(單文件、點前綴),結構類似 credentials(version + 扁平鍵表),鍵爲憑據 ref 名(如 STEPFUN_CONSOLE_COOKIE)。舊版 stepfun-console-session.json 首次讀取會遷移併入新文件後移除。寫盤時對種子指紋去重,避免靜態憑據反覆寫回;種子須含 Oasis-Token 段,避免碎片覆蓋已輪換的 jar。
模型選擇器¶
官方模型選擇器停用後,由本插件提供當前模型狀態、/model 命令與模型目錄狀態機。/model 支持按供應商過濾、搜索,候選按供應商分組並顯示額度/餘額。modlens-<上游>、deepseek-modlens 等合成 provider 的 chip、輸入框旁額度與 /model 面板按上游賬戶取數。選擇器展開時會重拉模型詳情,設置頁新增的自定義模型可立即帶上能力徽標。爲實現官方 / 命令契約,插件提供 available(session):被尋址爲子代理的會話不出現模型選擇;實現不向外拋錯,異常吞掉並放行。
穩定性與安全(摘要)¶
加載前校驗 manifest、入口與官方 bundle 的 import 子路徑;piAiCandidates() 按安全區 → vendor 遺留 → 內置 → dsh 自帶順序體檢,第一個通過者入選。橋接工作區在包外 $DSH_HOME/llm-provider-bridge/,安裝插件包內零鏈接(test/host-safety.mjs 迴歸)。宿主落在 app.asar 時,橋接副本內 specifier 改爲歸檔入口的 file:// URL,避免 junction/symlink 進 asar 懸空;啓用最新版 pi-ai 的 ON/OFF 兩條路徑均覆蓋。
安裝與啓用¶
倉庫爲私有時需先配置 git 憑據(如 gh auth login)。安裝命令如下(摘自 README):
dsh plugin --profile web add github:Ztyss/dsh-llm-provider # 私有倉庫,git 需憑據(gh auth login 即可)
dsh web # 需要重啓:插件樹在進程啓動時組裝
裝好後執行 dsh web;插件樹在進程啓動時組裝,變更後需重啓 Web 進程。若自行改源碼,在倉庫內執行 npm run build,並將 lib/ 與 src/ 一併提交(倉庫刻意無 prepare 腳本,避免 pnpm 從 git 安裝時失敗)。
典型用法¶
- 安裝插件並重啓
dsh web,打開 Models / Provider 相關設置頁。 - 在供應商卡片上就地填寫 API 地址、協議與憑據名,保存後即生效。
- 展開某路由的「模型(N)」,勾選要啓用的模型並保存;需要時用「測試」驗證連通性。
- 若需 npm 最新 pi-ai,在 pi-ai 橋接 打開「啓用最新版 pi-ai」,按界面提示完成下載後重啓。
- 在會話中用
/model按供應商瀏覽、搜索並切換模型,分組旁可查看額度/餘額(依賴各 provider 的查詢實現與憑據配置)。
倉庫內自測(不需要運行 dsh):
npm test # 構建 + 18 步離線測試鏈
node test/host-safety.mjs # junction 安全迴歸;建議在 node 24.14 與 DSH 自帶運行時(≥24.15)各跑一遍
適用場景與注意¶
適合:希望在 DSH Web 側統一管理多家 LLM 供應商與模型清單、查看額度,並可選跟蹤 npm 最新 @earendil-works/pi-ai 的用戶;接受用社區插件替換官方若干內置 UI 與適配器入口。
注意:插件以當前 dsh 進程權限運行,安裝前應閱讀 GitHub 倉庫 源碼與許可證,自行評估憑據、Cookie 與出站網絡(pi-ai 最新版開關 ON 時會訪問 npm)。DSH 社區插件目錄爲獨立站點 SkillHub 插件頁,與 DeepSeek / 幻方無官方從屬關係;目錄簡介爲「全量接管模型服務,並提供直觀的配置方式與額度顯示」,GitHub 星標數爲 1(以目錄/倉庫公開信息爲準)。
結尾¶
@ztyss/dsh-llm-provider 把 pi-ai / DeepSeek 適配、Models 設置與模型選擇器收攏到一套自維護實現裏,並補充額度展示與 pi-ai 版本橋接;安裝與行爲以 README 爲準。更多信息見 SkillHub 目錄頁 與 GitHub:Ztyss/dsh-llm-provider。