dsh-poor-router

前言

DSH 支持插件扩展,但免费层级的 API 经常在使用中途耗尽。手动切换很繁琐。dsh-poor-router 将这些资源池化,追踪使用情况,监控健康状况,并自动切换。

插件简介

dsh-poor-router 是一个预算 LLM 池路由器,用于 DeepSeek Harness。它由 yishengdaxiaonengjihui 维护。插件解决的核心问题是:免费模型分散且寿命短,需要在请求失败时无缝切换。它提供自动记账、健康追踪和基于 Thompson 采样的自适应路由。

核心能力

  1. 自动记账
    插件会记录每个条目的调用次数、成功/失败/中止状态、首字生成延迟(EMA)以及 Token 的流入流出。首次发现的模型会自动注册到 pool.json。

  2. Thompson-sampling 自适应路由
    路由决策基于每个条目的 Beta 后验分布和高斯近似采样。决策时考虑首字生成延迟惩罚(3000ms/ttft)和当前小时的桶权重。34% 的概率会注入一个未使用的同层新模型。

  3. 每小时桶 v2
    拥塞判断仅基于当日的小时桶(YYYY-MM-DD:HH 本地时间),并配合 7 天滚动修剪。这避免了因历史数据导致的“幽灵”拥塞。

  4. 同质量阶梯
    模型通过 tier: S/A/B/C 标签分类。路由优先选择同层模型,其次按 A→B→C 降级,仅在必要时爬升。阶梯可在 Web 面板中实时编辑。

  5. 执行器池
    标记为 role: executor 的廉价高配额模型会被加入执行器池。琐碎或辅助请求会被路由到剩余配额最厚的模型。每 6 次这样的请求中,有一次会进行 epsilon 探索。

  6. 付费护栏
    标记为 paid: true 的模型拥有每日限额。它们不会出现在候选列表中,仅作为“转义舱”使用。当所有免费候选都失效时,插件会切换到最便宜的付费模型,并触发 SMS 警告。

  7. 提供者断路器
    针对认证失败(AUTH)、配额不足(QUOTA)和 429 错误分别设置了冷却时间(10 分钟、90 分钟),冷却状态会持久化。

  8. 取证与日志
    插件维护一个保留 50 条的切换日志(环缓冲区)和 TS 样本记录,所有取证数据持久化到磁盘。

  9. Web 面板与重定向徽章
    提供设置页仪表盘,显示可用性排名、分组 Ledger 和最近切换记录。输入框左侧显示 ⚡ 重定向徽章,展示最近一次请求的来源和原因。

安装与启用

在 DSH 环境中运行以下命令安装插件:

dsh plugin --profile web add github:yishengdaxiaonengjihui/dsh-poor-router

或者手动编辑 package.json,添加依赖并运行 pnpm install。

配置

配置文件主要位于 pool.json(与模型配置同级)和插件的默认路径 <cwd>/poor-router/。插件级路径可在 cordis.patch.yml 中覆盖。

cordis.patch.yml 示例

- id: poor-router
  name: dsh-poor-router
  config:
    dataDir: 'D:/my-data/poor-router'   # 基础目录
    layerRules:
      - { match: 'deepseek-official/', layer: 'backbone' }
      - { match: 'tokenrouter/', layer: 'matchstick' }

pool.json 字段说明

字段 含义
id provider/model,必须与 Harness 提供的 ID 一致
expiresAt ISO 格式日期,用于排序和面板倒计时
grantRemaining / grantUnit 执行器池的预算配置
tier 质量阶梯 S/A/B/C
role "executor" 加入执行器池
layer backbone(永不烧) / burn / matchstick
paid + priceInYuanPerM + dailyCapYuan 付费护栏配置
escapeHatch 允许作为最后手段使用的付费模型

代理工具

插件注册了两个会话工具,可通过 CLI 调用:

  • pool_status:获取完整的快照,包括摘要和每个条目的统计。
  • pool_control:用于覆盖配置,如 setTier(设置质量)、setRouting(设置路由模式)、setBadge(显示徽章)、setExpiry(设置过期)、clearProviderCooldown(清除冷却)等。

注意事项

  1. 无状态路由:路由决策是每次请求无状态的,不会永久修改配置。
  2. 转义舱:当所有免费模型失效时,插件会切换到最便宜的付费模型,并通过 text_me 发送 SMS 提示。
  3. 无头运行:插件可以在没有 Web GUI 的情况下运行,CLI 工具依然可用。

参考资源

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

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

小夜