统一模型路由:一个逻辑 ModelID 汇聚多家供应商,首 token 前失败自动切换并冷却、健康度择优、按 purpose 三档分级(tier1/2/3)、每候选思考级别,设置面板自动保存即时生效。
安装
# npm 包(预构建)
dsh plugin --profile web add @welsione/dsh-model-router
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:welsione/dsh-model-router
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
统一模型路由插件:一个逻辑 ModelID 汇聚多家供应商的同名模型,按套餐组织候选链(每套餐三档
tier1/2/3)——首 token 前失败自动切换并冷却、健康度择优、每候选思考级别;对话窗口可手动选档,设置面板改路由与模型能力自动保存、即时生效。📦 已发布 npm:
@welsione/dsh-model-router
dsh plugin --profile web add @welsione/dsh-model-router
Screenshots / 界面预览
| 对话窗口 · 套餐与手动档位 | 设置面板 · 路由管理 |
|---|---|
![]() |
![]() |
左:对话窗口「套餐 · 档位」选择器——每套餐独立档位名(如 穷鬼套餐:夯 / NPC / 拉完了),点击即可手动选档,底部显示当前命中的 provider/model + 思考级别。
右:设置页「统一模型路由」管理面板——每套餐候选链 + 每候选失败/成功计数(健康度)、思考级别、切换统计(280 请求 · 切 9)、冷却与模型能力编辑,修改自动保存。
Overview / 简介
| 能力 | 一句话 |
|---|---|
| 多套餐路由 | 多个套餐(Route Group)并存,每套餐独立三档候选链与档位名,按需选用 |
| 自动故障转移 | 主候选首 token 前失败(限流/配额/认证/网络/模型不存在/空响应)自动切下一候选;失败候选分级冷却(限流短、服务端中、认证长)+ 连续失败指数退避(封顶 30 分钟) |
| 健康度择优 | 候选按滑动窗口时间衰减 + 错误码加权评分重排——最近结果权重高,服务端类失败扣分重、限流类轻,稳定成功的提前、频繁失败的延后,可一键关闭 |
| 三档分级 + 手动档位 | 每套餐 tier1 轻量 · tier2 标准 · tier3 强大,按 purpose 自动选档、档空逐级降档;对话窗口可会话级手动选档 |
| 思考级别 | 每候选可配 reasoningEffort,保存时实际请求预检,只允许宿主真正支持的档位 |
| 档位名称 | 每套餐独立自定义档位显示名(routes.<id>.tierNames),彩色胶囊点击即改名,对话窗口同步展示 |
| 模型能力写回 | 管理面板可编辑自定义供应商模型能力(思考级别档位/contextWindow/maxTokens)并写回宿主 llm-pi-ai,热重载生效 |
| 管理面板 | DSH 设置页内置「模型路由」卡片,路由统计/冷却/健康度/能力编辑,修改自动保存;对话窗口套餐选择器实时路由状态 |
| 界面语言 | 面板文案经宿主 locale 注册表(model-router 命名空间)提供 zh/en 双语,跟随界面语言免刷新切换;第三方语言包可对同一命名空间补充翻译 |
| 会话安全 | 会话事件可恢复、跨 provider 自动清洗 replayState |
Compatibility / 兼容性
- DSH
0.1.0-rc.x–0.1.5-rc.x(0.1.5-rc.1实测,兼容 0.1.2 起的settings.installSection新 API)· Node.js ≥ 22(React 18/19)· 最后验证 2026-09-11。
Install / Uninstall · 安装 / 卸载
已发布到 npm(@welsione/dsh-model-router)。dsh plugin add 会自动从 npm 拉取:
dsh plugin --profile web add @welsione/dsh-model-router # 安装
dsh plugin --profile web remove @welsione/dsh-model-router # 卸载
npm 拉不动?可改走 GitHub 源:
dsh plugin --profile web add github:welsione/dsh-model-router。
装好后设置页出现「模型路由」卡片;对话窗口模型选择器变为「套餐」选择器(三档切换)。详见 docs/usage.md。
Quick start / 快速开始
打开 设置 → 模型路由,添加统一 ModelID(如 deepseek-v4-flash),为 tier1/2/3 各配候选即可——修改自动保存、即时生效。最小配置与完整示例见 docs/usage.md。
Configuration / 配置
面板可视化编辑 enabled / cooldownMs / maxSwitchesPerStep / healthRanking / reasoningEffortsFallback / routes(含每套餐 tierNames)。完整配置表、模型能力写回宿主 llm-pi-ai 与面板 API 见 docs/usage.md。
Permissions & data / 权限与数据
不对外发请求、不读写工作区文件、不上报遥测、不接触 API key;运行时状态为内存态,手动档位持久化到宿主 settings。
Troubleshooting / 故障排查
设置页无卡片 / 候选不在目录 / 自动保存失败 / 一直切换 / 会话打不开 → 快速排查清单见 docs/usage.md。
Development / 开发
npm test # 单元测试(node:test,零依赖)
npm test && npm pack --dry-run # 发布前四连
纯逻辑 lib/core.mjs + 接线 lib/index.js + Web UI lib/client.js;合规自检与证据见 docs/self-check.md。
发布新版本(自动发布到 npm)
打 v<version> tag 推送后,GitHub Action(npm-publish.yml)会校验 tag 与 package.json 版本一致,然后自动 npm publish:
npm version patch # 升版本号(patch/minor/major,同步 CHANGELOG)
git push && git push --tags
发布需要仓库配置 NPM_TOKEN secret(npm 账号 welsione 的 Automation token)。
License & security / 许可证与安全
MIT。安全问题请通过仓库 issue 私下报告。
链接
同类插件
Ebony-Vinyl/dsh-our-free-model★ 34394
为 dsh 接入免费模型车道(含 DeepSeek V4.1 Flash、Kimi K3 等),无需登录、注册或填写 API Key,并提供本地 OpenAI 兼容网关、降级路由与用量看板。
V1ki/dsh-plugin-subscriptions★ 491
把 ChatGPT(Codex)、Claude、Grok 订阅当作 DeepSeek Harness 的 LLM 提供方:设置页登录、模型目录、用量展示,以及 image_generate、video_generate 与 x_search 工具。
Mars-Sea/dsh-commandcode-provider★ 423
非官方 Command Code 模型接入插件:注册 `commandcode` 路由,带实时模型目录与推理强度支持。
dingminhua/dsh-connect-workbuddy★ 372
将本机登录的 WorkBuddy 模型接入 DSH,支持逐模型图片输入开关、账号切换,以及带每日签到的只读积分概览。
FishBottle7/opencode2dsh★ 319
将 OpenCode Zen 免费模型接入 DeepSeek Harness,无需 API Key。
cv-superding/dsh-deepseek-web-login★ 294
新增 deepseek-web provider,把 chat.deepseek.com 网页端模型接入 DSH:浏览器登录抓取、PoW 请求签名、SSE 流式传输与基于提示词的工具调用。


社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。