dsh-model-health:DSH 模型可用性与延迟测试插件

前言

DeepSeek Harness (DSH) 的插件化设计使得扩展功能变得容易。在管理多个模型配置时,确认哪些模型可用且响应速度如何是必要的。dsh-model-health 插件在设置页面提供「模型健康」面板,列出已配置模型并提供批量测试功能。

核心功能

Web UI 面板

插件在设置页注入「模型健康」面板,使用 React 渲染表格。表格显示的信息包括 Provider、模型 ID、名称、上下文窗口、最大输出、输入模态、API 协议以及 BaseURL。用户可以切换显示的列。

测试全部

面板提供「测试全部」功能,系统会对每个模型发起并发请求进行可用性测试。测试并发数上限为 6,单次请求超时时间为 10 秒。测试结果(状态、延迟、错误)会持久化到浏览器的 localStorage 中,刷新页面后依然可见。
- 状态列显示「可用」、「不可用」或「跳过」。对已出结果的徽章可点击,支持对单个模型重新测试,结果即时更新。
- 可用性测试支持 openai-completions 与 deepseek 协议。如果模型配置使用的是其他协议,系统会自动标记为「跳过」。

Tool 插件

插件提供 list_models 工具,可在对话中直接调用。调用后返回一个 Markdown 格式的模型清单表格,方便在对话流中查看当前已配置的模型。

安装与依赖

安装

推荐使用 npm 安装:

dsh plugin --profile web add dsh-model-health

依赖锁定

插件依赖 @deepseek-ai/dsh-tools,必须使用 0.1.0-rc.8 版本(exact — the next-tag line;npm latest 版本已过时)。安装前请确保宿主环境中的依赖版本符合要求。

源码安装

如果需要从源码安装,需先克隆仓库并在其父目录执行:

git clone https://github.com/oxlyn/dsh-model-health.git
cd dsh-model-health
pnpm install
pnpm run build

# 在插件的父目录执行:
cd ..
dsh plugin --profile web add ./dsh-model-health

实现细节

插件分为 Host 侧与 Client 侧两部分。Host 侧(src/index.ts)负责读取 $DSH_HOME/settings.yaml 配置文件,并通过 HTTP 路由 /api/model-health/json 和 /api/model-health/test 提供数据接口;Client 侧(src/client.tsx)通过 settings.section slot 注入 UI 面板。

  • API Key 安全:API Key 通过 DSH credential service(ctx.credentials.resolve)解析,密钥不会输出到浏览器端。
  • 配置来源:支持读取 llm-deepseek(官方)与 llm-pi-ai(多协议自定义提供商)两类配置来源。
  • 导航图标:由于宿主图标表没有「健康」类目,设置导航使用脉搏线(Activity)图标。参考 dsh-better-sidebar 的方案,使用 JS 精准打 marker(rAF 合帧防抖),并用 CSS 将齿轮 SVG 原地替换,颜色随主题变化。

典型用法

  1. 在「模型健康」面板点击「测试全部」按钮,系统将对每个模型发起并发请求进行可用性测试。
  2. 在对话中直接调用 Tool 插件 list_models,以获取模型清单的 Markdown 表格。

总结

dsh-model-health 通过 Web UI 和 Tool 两种方式,解决了在 DSH 中批量检查模型可用性与延迟的问题。安装后,配合正确的依赖版本,即可在设置页直观地管理模型状态。

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

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

小夜