welsione/dsh-model-router ↗★ 0
dsh-model-router
DSH 统一模型 ID 路由插件:支持单逻辑 ID 对应多服务商、首字失败冷却容灾、健康度重排、推理能力降级、任务类型分流及设置页管理面板。
AI 分析
核心用途是实现大模型调用的高可用与智能分流。适合配置了多个 API 渠道、需要自动故障转移(Failover)以及根据任务复杂度自动分流(如轻量任务走 flash)的用户。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:welsione/dsh-model-router说明文档
阅读完整 README ↗Configuration / 配置
| 字段 | 默认值 | 说明 |
|---|---|---|
| enabled | true | 总开关;false 时全部放行原路径 |
| cooldownMs | 300000 | 失败候选冷却时长(ms) |
| maxSwitchesPerStep | 3 | 每个 step 最多切换候选次数(1-10) |
| healthRanking | true | 健康度择优:按滑动窗口内成功/失败重排候选链(稳定成功提前、频繁失败后移) |
| healthWindowSize | 8 | 每个候选健康度统计的滑动窗口大小(3-30) |
| reasoningEffortsFallback | ["low","medium","high"] | 目录未标注推理能力的候选,允许手动选择的思考级别候选集(保存/面板时用实际请求预检 resolveCallConfig 过滤,只保留宿主真正接受的档位;默认取 models.dev 最常见档位,可自定义如 ["none","minimal","low","medium","high","xhigh","max"],设 [] 关闭兜底) |
| routes | {} | 统一 ModelID → { tier1/2/3: [候选] } |
| manualTiers | {} | sessionId → 手动档位(面板写入,跨重启保留) |
每个候选:provider(必填)、model(必填)、reasoningEffort(可选,保存时校验模型支持)。
模型能力(写回宿主 llm-pi-ai · 仅自定义供应商)
面板「自定义供应商模型能力」卡片列出宿主 llm-pi-ai 中自定义(hand-declared)供应商的模型,可逐模型编辑 reasoningEfforts(思考级别档位 + wire 值)、contextWindow、maxTokens 并保存。插件用全局 ctx.settings 深合并写回 llm-pi-ai 命名空间(只改目标 provider/model,其余配置保留),llm-pi-ai 的 onChange 热重载 adapter,无需重启即生效。
- 仅自定义供应商可写:只对
ctx.llm.listConfigurableProviders()中declared === true(pi-ai 不内置的 gateway/self-hosted)开放;内置目录供应商被过滤 / 拒绝,其能力由宿主模型目录管理。 - 典型用途:
volcengine-mian/deepseek-v4-flash这类 hand-declared 模型(settings 里只有id/name)不声明reasoningEfforts时,宿主 pi-ai 判定其不支持推理,任何思考级别都会被拒。在卡片声明档位(如off/low/medium/high)写回后,该模型立即可配思考级别。
面板 API(同源 webServer):
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /api/model-router/state | 配置 + 模型目录 + 思考级别 + 冷却 + 事件历史 + 统计 + 每候选健康度 |
| POST | /api/model-router/save | 整段保存(校验模型存在性与思考级别) |
| POST | /api/model-router/cooldowns/clear | 清空全部冷却 |
| POST | /api/model-router/tier | 设置 / 清除会话手动档位 |
| GET | /api/model-router/model-capabilities | 读宿主 llm-pi-ai 的 provider/models 能力(reasoningEfforts/contextWindow/maxTokens) |
| POST | /api/model-router/model-capabilities | 写回某 provider/model 的能力(深合并,热重载生效) |