Visol-456/dsh-llm-fallback

Visol-456★ 2TypeScript最后同步: 2026-08-14

在 GitHub 打开

DeepSeek Harness 回退链插件:主模型失败自动切换备用 provider,带 Web UI 配置面板 | Provider fallback chains for DeepSeek Harness

README 摘要

@visol-456/dsh-llm-fallback English 中文 DeepSeek Harness 的 provider fallback chain 插件——当主 provider 失败时,同一请求会自动在下一个配置的 (provider, model) 条目上重试,限流、超时或临时不可用的 provider 不会直接终结一轮对话。 DeepSeek Harness dsh-plugin 生态的社区插件,不属于官方仓库。 开发原因 由于众所周知的原因,deepseek要涨价了,对于我一个学生直接用不起了,于是只能去投奔opencode-go。然而,opencode-go的海外链接非常不稳定,挂了代理都不行,在长程任务中经常出错暂停,单 provider 部署在服务不稳定时会直接失败: - 限流与配额错误 - 服务端错误、5xx 抖动 - 超时与传输层故障 本插件为每条链维护一份按优先级排序的 (provider, model) 路由表,跟踪连续可切换失败(熔断器),并自动把请求故障切换到下一个健康条目。后续请求会继续使用当前服务条目,直到冷却结束、对链头的一次探测成功为止。 快速开始 在 cordis.yml 中挂载插件: 请求本身永远是链头(你在 UI 里选的 provider/model,或部署默认值),永不被改写。 fallbacks 列出请求失败后按顺序切换的备用目标。省略 fallbacks 键合法且插件保持休眠,所有请求原样放行;等你在 Web 界面的 Settings - 回退链 页保存备用目标之后再生效。 部署到 web profile(dsh web) A. dsh plugin add (推荐) 本包声明了 dsh.bundle ,安装后会作为 profile 层自动激活(无需手写 patch 文件——随包附带的 cordis.patch.yml 会以无备用目标挂载插件,目标在 UI 里创建): B. 手动 patch 覆盖层 创建一个覆盖层文件(是 patch 列表,不是裸条目列表),用 --patch 应用: patch 语法(最大的坑) - 每个挂载条目必须有 id 。 - 新增条目必须放在顶层 - insert: 列表里(参照 harness 的 examples/web-schedule/cordis.yml )。 - 裸条目列表会被静默拒绝:报 patch: id is required for non-insert patches / entry "xxx" not found ,而且 dsh web 启动不打印任何错误 (只有一行 dsh web: http://... )。 - 用以下命令诊断组合配置树(含 patch 错误): 本地开发 junction 位置 $DSH HOME/profiles/nod…

在 GitHub 查看完整 README →
Skins / UIdeepseek-harnessdsh-pluginfallbackweb ui

分类