dsh-model-meta-autofill:爲 DSH 自定義供應商模型自動補全元數據

前言

在 DSH 的插件化擴展方式中,接入自定義供應商時,模型條目常常只有 id。若缺少上下文長度、輸出上限、顯示名和輸入模態,界面展示和容量判斷都會缺少依據。dsh-model-meta-autofill 面向這個場景,把目錄裏已知的模型元數據補填到 llm-pi-ai 設置區。

這是什麼

dsh-model-meta-autofill 是 DSH 插件,用於爲 llm-pi-ai 設置區中的自定義供應商模型自動預填 contextWindowmaxTokensnameinput。默認數據來源是 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 暴露宿主接口,包括 lookupstatsrefreshbuildSectionPatch

設置頁會提供「模型元數據」分區,支持:

  • 單模型「填充」
  • 「全部覆蓋」入口
  • 「顯示名稱攜帶廠商名」開關
  • 「刷新」
  • 「獲取網關模型」

插件還提供本機迴環 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-aidiscoverModels 是兩條獨立通路。

安裝與啓用

插件需要裝入運行 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}.jsonpnpm build 會重新打包。

適用場景與注意

適合在 DSH 中使用自定義供應商模型的開發者:當模型條目只有 id,且需要從 models.dev 等目錄補充 contextWindowmaxTokensnameinput 時,可以用這個插件減少手工維護。

使用前注意:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • 目標設置區固定爲 llm-pi-ai
  • 只填目錄中有據可查的字段;目錄未出現的新發布或小衆模型不會被猜測。
  • 用戶已有值優先,包括 modelOverrides
  • fillReasoning 當前恆爲 false,不要把它當作可用開關。
  • 不要把插件目錄理解爲官方應用商店;安裝對象以倉庫與命令指向的包爲準。

相關鏈接

  • GitHub:https://github.com/QJAG1024/dsh-model-meta-autofill
  • models.dev:https://models.dev/
羽毛球分组比赛记分
小程序二维码

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

小夜