DeepSeek Harness 插件:OmniRoute 模型管理器與搜索集成

前言

DeepSeek Harness(DSH)採用插件化架構。在使用 OmniRoute(一個 OpenAI 兼容網關)時,網關可能暴露大量模型(例如本地 1000+ 個模型)。DSH 自帶的“模型”頁面缺乏搜索、篩選和模態發現能力,且發現契約無法返回模態性。該插件旨在解決這一痛點,通過一個可搜索、可篩選的多選 UI,控制 DSH 實際提供的 OmniRoute 模型,並集成 Web 搜索功能。

插件簡介

  • 名稱:publieople/dsh-omniroute-models
  • 定位:DSH 主機端和客戶端插件,用於管理 OmniRoute 模型並發現其模態性。
  • 功能:將 OmniRoute 的真實 input_modalities、context_length 和 max_output_tokens 映射到配置中,使單次檢查立即生效,無需重啓。

核心功能

按供應商篩選與路由管理

  • 按供應商篩選:解析模型 ID 的命名空間前綴(如 opencode-go/deepseek-… → opencode-go)。UI 提供“供應商”下拉框和供應商列,支持按 opencode、oc、auto、github 或無命名空間進行篩選。
  • 切換路由:自動枚舉 llm-pi-ai.providers 下的所有配置路由(包括路由名稱、顯示名稱、API、Base URL、模型數量及協議類型)。通過頂部的“路由”下拉框切換當前管理的端點。

模型拉取與保存

  • 拉取模型列表:點擊操作會請求提供商的 /v1/models 接口(默認爲 http://localhost:20128/v1),獲取每個模型的輸入類型(文本/圖像)、上下文窗口和最大 Token 數。
  • 保存選中:點擊“保存選中”會一次性更新 llm-pi-ai.providers.<route>.models 配置。DSH 將僅服務被勾選的模型。此操作通過官方設置接口寫入 settings.yaml,並在下一次請求時生效。保存時保留同級的 apiKeyEnv、api、baseURL 等字段。
  • 持久化:已啓用的模型會被預勾選。重新拉取時,存儲的值優先於插件寫入的模態性/能力(即用戶手動編輯的配置不會被覆蓋)。

Web 搜索集成

  • 插件將 DSH 的內置 web_search 功能連接到兩種來源:
    • OmniRoute 聚合搜索:支持 Tavily、Brave、Exa、Serper、Ollama 等引擎。
    • DeepSeek 原生搜索:當 OmniRoute 源被禁用或設置爲 DeepSeek 時,自動回退到官方搜索。
  • 在配置 Web 搜索卡片時,可選擇上述兩種來源。對於 OmniRoute 源,密鑰是可選的(網關使用自身存儲的上游密鑰),但如果端點要求,密鑰解析順序爲:字面量 searchApiKey → DSH 憑證引用 searchApiKeyEnv → 進程環境變量。

模型類型過濾

  • 插件僅列出聊天模型(文本/圖像)。Gateway 的 /v1/models 可能包含嵌入、視頻、音頻、音樂等條目,插件會通過 type 字段過濾掉這些非聊天模型。
  • 對於 OmniRoute >= 3.8.50 列出的搜索引擎僞模型(如 brave-search/web),插件會通過其 -search 後綴進行過濾。

國際化支持

  • 支持中英文(i18n)。使用 DSH 官方本地化機制,在 DSH 設置面板切換語言時,界面文本會自動刷新。

安裝與依賴

  • 前置依賴:需要 OmniRoute 版本 >= 3.8.50。
  • API 密鑰要求:OmniRoute 3.8.50 之後,即便是獲取模型目錄(GET /v1/models)也要求有效的 API 密鑰(不再允許匿名訪問)。
  • 安裝方式:安裝命令未在當前數據中提供。插件通過包管理器或目錄方式安裝,安裝後需確保 OmniRoute 網關已配置並可用。

典型用法

  1. 篩選模型:在“OmniRoute 模型管理器”頁面,使用“供應商”下拉框選擇特定的命名空間(例如 opencode),快速定位該廠商下的模型。
  2. 管理路由:如果配置了多個提供商端點,通過“路由”下拉框切換當前要管理的端點。
  3. 應用變更:勾選需要的模型,點擊“保存選中”。DSH 會更新配置文件,無需重啓服務即可生效。
  4. 配置搜索:在“Web 搜索”卡片中選擇使用 OmniRoute 聚合搜索或 DeepSeek 原生搜索。

注意事項

  • API 密鑰解析:插件從 DSH 憑證存儲讀取密鑰的順序爲:llm-pi-ai 命名空間(適配器使用的標準路徑) -> 進程環境變量 -> 查詢參數。
  • 非聊天模型:插件邏輯會自動剔除嵌入、視頻、音頻等模型,確保配置中不會出現 DSH 無法處理的模型類型。
  • 配置衝突:如果手動編輯了 settings.yaml,插件在重新拉取時不會覆蓋這些手動的修改,以尊重用戶的配置優先級。
  • 權限與安全:插件以 DSH 進程權限運行,安裝前應檢查源碼與許可證。

總結

該插件通過將 OmniRoute 的模型目錄與 DSH 的配置系統打通,解決了模型管理混亂和模態性缺失的問題。它提供了一個可視化的界面來管理模型白名單,並提供了靈活的 Web 搜索後端選擇。對於需要管理大量模型或依賴 OmniRoute 作爲統一網關的用戶,這是一個實用的工具。

羽毛球分组比赛记分
小程序二维码

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

小夜