前言¶
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 网关已配置并可用。
典型用法¶
- 筛选模型:在“OmniRoute 模型管理器”页面,使用“供应商”下拉框选择特定的命名空间(例如
opencode),快速定位该厂商下的模型。 - 管理路由:如果配置了多个提供商端点,通过“路由”下拉框切换当前要管理的端点。
- 应用变更:勾选需要的模型,点击“保存选中”。DSH 会更新配置文件,无需重启服务即可生效。
- 配置搜索:在“Web 搜索”卡片中选择使用 OmniRoute 聚合搜索或 DeepSeek 原生搜索。
注意事项¶
- API 密钥解析:插件从 DSH 凭证存储读取密钥的顺序为:
llm-pi-ai命名空间(适配器使用的标准路径) -> 进程环境变量 -> 查询参数。 - 非聊天模型:插件逻辑会自动剔除嵌入、视频、音频等模型,确保配置中不会出现 DSH 无法处理的模型类型。
- 配置冲突:如果手动编辑了
settings.yaml,插件在重新拉取时不会覆盖这些手动的修改,以尊重用户的配置优先级。 - 权限与安全:插件以 DSH 进程权限运行,安装前应检查源码与许可证。
总结¶
该插件通过将 OmniRoute 的模型目录与 DSH 的配置系统打通,解决了模型管理混乱和模态性缺失的问题。它提供了一个可视化的界面来管理模型白名单,并提供了灵活的 Web 搜索后端选择。对于需要管理大量模型或依赖 OmniRoute 作为统一网关的用户,这是一个实用的工具。