前言¶
在 DSH 的插件化擴展方式中,接入自定義供應商時,模型條目常常只有 id。若缺少上下文長度、輸出上限、顯示名和輸入模態,界面展示和容量判斷都會缺少依據。dsh-model-meta-autofill 面向這個場景,把目錄裏已知的模型元數據補填到 llm-pi-ai 設置區。
這是什麼¶
dsh-model-meta-autofill 是 DSH 插件,用於爲 llm-pi-ai 設置區中的自定義供應商模型自動預填 contextWindow、maxTokens、name 與 input。默認數據來源是 models.dev 的 Model Metadata Registry,也支持通過 sources 合併其他目錄源。
倉庫地址爲 https://github.com/QJAG1024/dsh-model-meta-autofill。資料中的所有者線索爲 QJAG1024,未明確聲明維護者。許可證爲 MIT。
數據與匹配¶
- 默認從 models.dev Model Metadata Registry 獲取目錄數據。
- 構建時打包離線索引,離線可用。
- 啓動時可即時刷新
models.dev/api.json;即時刷新默認開啓。 - 各數據源獨立失敗隔離,單個源失敗不影響其餘源與離線索引。
- 支持
sources多目錄源合併,兼容models.dev、PublicProviderConf 名稱或http(s)URL。 - 兼容數字或 K/M 後綴的容量字段寫法。
- 兼容模型 id 的精確、小寫、
provider/前綴剝除、~變體等別名。 - 目錄中未出現的新發布或小衆模型不會被猜測,只填有目錄依據的字段。
寫入行爲¶
- 目標設置區固定爲
llm-pi-ai。 - 插件監聽
llm-pi-ai設置區變化,對缺失字段生成補丁。 - 只填充缺失字段,不覆蓋已有設置。
- 用戶已有值始終優先,包括
modelOverrides。 - 只處理存在於用戶設置層的 provider 路由;base-only provider 不會被物化進用戶文檔。
models列表有改動時整表重述,寫入冪等。fillReasoning爲保留開關,默認關閉,當前恆爲false。
宿主接口與操作入口¶
插件通過 ctx.modelMeta 暴露宿主接口,包括 lookup、stats、refresh、buildSectionPatch。
設置頁會提供「模型元數據」分區,支持:
- 單模型「填充」
- 「全部覆蓋」入口
- 「顯示名稱攜帶廠商名」開關
- 「刷新」
- 「獲取網關模型」
插件還提供本機迴環 HTTP API:
GET /model-meta-autofill/api/status
GET /model-meta-autofill/api/models
POST /model-meta-autofill/api/apply
POST /model-meta-autofill/api/apply-all
POST /model-meta-autofill/api/discover
POST /model-meta-autofill/api/discover/add
「獲取網關模型」走網關的 OpenAI 兼容 /models 清單接口;與 llm-pi-ai 的 discoverModels 是兩條獨立通路。
安裝與啓用¶
插件需要裝入運行 dsh web 的 profile,例如 ~/.dsh/profiles/web。運行環境要求 Node >=22.0.0。
使用插件命令安裝:
dsh plugin --profile web add dsh-model-meta-autofill
從源碼安裝時,先做本地構建,再安裝 tarball:
pnpm install
pnpm build
npm pack
dsh plugin --profile web add dsh-model-meta-autofill@<tarball路徑>
安裝後,重啓 dsh web 或對應管理面重載插件。首次運行時,如果 llm-pi-ai 已存在帶模型的 provider,初始掃描會立即補填一次。
典型用法¶
在設置頁操作¶
重啓後,在設置頁「模型元數據」分區中可使用:
- 「填充」:對單個模型執行補填。
- 「全部覆蓋」:設置頁列出的批量入口。
- 「顯示名稱攜帶廠商名」:影響填充顯示名的寫法。
- 「刷新」:刷新目錄數據。
- 「獲取網關模型」:獲取網關模型列表並添加。
使用本機迴環 API¶
HTTP 端點運行在本機迴環,可直接用 curl 或瀏覽器 console 調用。可用端點如下:
GET /model-meta-autofill/api/status
GET /model-meta-autofill/api/models
POST /model-meta-autofill/api/apply
POST /model-meta-autofill/api/apply-all
POST /model-meta-autofill/api/discover
POST /model-meta-autofill/api/discover/add
維護目錄源¶
sources 支持多目錄源合併,可寫入 models.dev、PublicProviderConf 名稱或 http(s) URL。
如需 PublicProviderConf 網關拼寫兜底:
pnpm gen:data aihubmix
並將 aihubmix 加入 sources。
更新默認打包源:
pnpm gen:data
pnpm build
pnpm gen:data 會拉取默認源並規整爲 src/data/{source}.json,pnpm build 會重新打包。
適用場景與注意¶
適合在 DSH 中使用自定義供應商模型的開發者:當模型條目只有 id,且需要從 models.dev 等目錄補充 contextWindow、maxTokens、name、input 時,可以用這個插件減少手工維護。
使用前注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 - 目標設置區固定爲
llm-pi-ai。 - 只填目錄中有據可查的字段;目錄未出現的新發布或小衆模型不會被猜測。
- 用戶已有值優先,包括
modelOverrides。 fillReasoning當前恆爲false,不要把它當作可用開關。- 不要把插件目錄理解爲官方應用商店;安裝對象以倉庫與命令指向的包爲準。
相關鏈接¶
- GitHub:
https://github.com/QJAG1024/dsh-model-meta-autofill - models.dev:
https://models.dev/