DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

zhanghao3693 /

zhanghao3693/dsh-llm-router

Verified

Task-aware auto model router for DeepSeek Harness

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@f8897494

dsh-llm-router

一个 DeepSeek Harness(dsh)的 auto 路由 provider:注册一个名为 auto 的虚拟模型,按请求内容自动挑选后端模型,并在失败时按链回退。

它解决什么问题

在 dsh 里,每个 provider 对应一个固定模型。想「看图用视觉模型、长文用长上下文模型、 其余用便宜的」就得手动切来切去。本插件把这个选择自动化:

请求进入 auto
   ├─ 含图片            → visionBackend
   ├─ 输入超阈值字符数   → longContextBackend
   └─ 其余              → defaultBackend
                          ↓ 任一后端「产出首个内容前」失败
                        按 fallbacks 链依次重试

回退只在「首个内容块产出之前」发生。 一旦后端已吐出内容,它就该自己负责到底—— 中途失败会如实报错,不会重试(否则用户会看到重复的半个回答)。

安装

dsh plugin --profile web add dsh-llm-router

安装后 dsh 里会多出 auto 这个 provider,把它选为当前模型即可。

⚠️ 安装后必须做的事:配置你自己的后端

默认配置里的 provider 名是作者本机环境的,别人装了不一定存在。 不改配置就使用,大概率路由失败(找不到对应 provider)。

在你的 profile patch 层覆盖(~/.dsh/profiles/<profile>/cordis.patch.yml):

- id: llm-router
  config:
    defaultBackend:
      provider: <你的 provider id>
      model: <模型名>
    visionBackend:
      provider: <支持图片的 provider>
      model: <模型名>
    longContextBackend:
      provider: <支持长上下文的 provider>
      model: <模型名>
    fallbacks:
      - provider: <备选1>
        model: <模型名>
      - provider: <备选2>
        model: <模型名>

完整可配项与默认值:

字段 默认值 说明
defaultBackend deepseek-official / deepseek-v4-pro 常规请求
visionBackend zai-coding-cn / glm-5v-turbo 含图请求(不回退,见下)
longContextBackend longcat / LongCat-2.0 超长输入
longContextCharThreshold 200000 触发长上下文的字符数
fallbacks 6 项(kimi / 智谱 / MiniMax / LongCat) 回退链
advertisedContextWindow 1000000 对外宣称的上下文窗口
defaultReasoningEffort high 默认推理档位

视觉请求刻意不回退 —— 链上只有 visionBackend 一个候选。原因是其他后端不接图片, 回退过去只会拿到一个含义不同的报错,不如让失败原因直白。

路由日志

插件注册 GET /api/llm-router/routes?sessionId=&limit=,返回最近的路由决策 (内存环形缓冲,最多 200 条,不落盘):

{ "routes": [ { "id": 12, "kind": "vision", "provider": "zai-coding-cn",
                "model": "glm-5v-turbo", "fallbackIndex": 0,
                "affiliate": { "name": "智谱 BigModel", "badge": "2000万Tokens" } } ],
  "total": 12 }

kind ∈ default / long-context / vision;fallbackIndex 为 0 表示首个候选就成功。

关于 affiliate 字段(如实披露)

affiliate 仅在已选定后端之后填入,表示该后端对应的平台与作者有推广关系。 它只为界面提示而存在,不参与任何路由决策,且这一点是用结构保证的:

  • 查询点在 decide() 与回退循环定论之后,时序上不可能影响本次选择;
  • 选择逻辑的各函数体内不含任何返利相关标识符;
  • 该字段不含 weight / score / priority 之类排序语义。

可以自行验证:把 AFFILIATE_HINTS 改成给所有 provider 都挂上返利, decide() 的输出对同一组输入逐条不变。

已知边界

  • 回退判定只看「首个内容前」的失败(配额、限流、连接错、缺凭证等)。 已产出内容后的中断不回退,见上文说明。
  • 路由日志是进程内内存,重启即清空,不适合当审计账本。
  • longContextCharThreshold 按字符数估算,不是精确 token 数。
  • 视觉后端不回退,故 visionBackend 必须配一个真实可用的多模态模型。

兼容性

  • 需要 @deepseek-ai/dsh(peer dependency,*)。
  • 已验证 dsh 0.1.5 线。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit f8897494bbe9

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout