dsh-sjtu-quota:上交 API 在 DSH 中的排队、本地记账与 429 恢复

前言

在 DeepSeek Harness(DSH)里把模型路由指向上交 models.sjtu.edu.cn 时,分钟 Token 上限、请求频率和校内周预算都会成为硬约束。Harness 本身不会按学校侧限流规则替你排队,也不会在触发 HTTP 429 后自动续跑当前模型步骤;多轮对话或长上下文一旦估算偏大,还容易在本地毫无预警地撞限。

下面介绍社区插件 dsh-sjtu-quota(维护者 qzwn521):在 DSH 进程内对选定路由做请求 pacing、本地 Token 记账,并在可恢复的临时 429 后尝试恢复原生 agent 的模型步骤。当前版本为 0.1.1-beta.1 测试版,README 写明尚未被市场收录,且不保证完全避免 429 或反映学校账号真实余额。

这是什么

dsh-sjtu-quota 归类为 DSH 社区目录中的「模型推理」类插件。一句话定位:针对上交 API 的 DSH 请求排队与限流恢复——分钟额度不足时等待,临时 429 后自动恢复当前模型步骤(在插件覆盖的调用路径内)。

插件以本地账本统计为主:disclosure 标明 offlineMode: true,不自动上传数据;权限限于 DSH_HOME 下自有账本与锁(或用户配置的 stateFile),不保存 API Key 或聊天正文。项目为 MIT 许可的第三方社区作品,与上海交通大学、DeepSeek 或插件市场无隶属或背书关系。

核心功能

资料中列出的能力如下,安装前宜对照 GitHub README 与「边界」一节理解限制。

预设与路由识别

  • 默认上交预设:300,000 Token/min、10 请求/min、本地七天 1,000,000,000 Token 预算。
  • 按 models.sjtu.edu.cn 精确识别路由;也可在配置里手动指定路由 ID 与预算,选中路由共享额度。
  • providers 非空时仅保护手动指定的路由;为空时按接口域名识别,不要求路由名为 sjtu,也不匹配域名后缀相似的其他站点。

用量估算与修正

  • 请求前按预计输入与输出上限预留额度,返回后用真实 usage 修正;缓存与推理不重复计数。
  • safetyRatio: 0.9 将调度预算设为 270,000 Token/min(在默认 300,000 下),留出估算余量;设为 1 则使用完整分钟额度。
  • fallbackOutputTokens 仅用于请求未指定 maxTokens 时的预留,不会修改真实输出上限。

429 与恢复

  • 临时 429:优先采用服务端相对等待时间,其次合理的重置时间,否则等待 61 秒(对应配置项 fallbackWaitMs: 61000)。
  • 原生模型步骤恢复没有 README 中的默认「五次」上限说明(与部分通用重试策略不同,以插件实现为准)。
  • 周额度、认证或余额耗尽等终态问题不会按临时分钟限流无限重试。

可观测与持久化

  • 命令 /sjtu-quota 显示受保护路由、分钟已用/预留、请求数、排队、冷却和本地统计。
  • 等待可取消;统计跨重启保存。默认账本路径为 DSH_HOME/storages/sjtu-quota/ledger.json,未设置 DSH_HOME 时使用用户目录下的 .dsh。

覆盖范围

  • 只覆盖官方 llm/stream 调用;自动恢复针对原生 agent 请求错误接口。直接发 HTTP 的第三方插件不在范围内。
  • 一份账本仅允许一个 Host 持有;尚无多电脑协调或多 Key 独立分组。

安装与启用

Harness 要求 Node >=22.19.0,插件 engines.dsh 为 0.1.5-rc.2 或 0.2.0-rc.2。安装命令以 README 为准:

dsh plugin --profile web add github:qzwn521/dsh-sjtu-quota

Desktop 用户将 web 换为当前 desktop profile。启用后运行 /sjtu-quota,先确认受保护路由是否正确。

卸载(保留本地账本):

dsh plugin --profile web remove dsh-sjtu-quota

发布前开发者可从项目目录安装本地包:dsh plugin --profile desktop add .,或使用打包后的 .tgz 测试;普通用户以 GitHub 安装命令为准即可。

配置要点

新版 DSH 使用插件原生 Config 设置表单;旧版使用 sjtu-quota 设置命名空间。profile patch 示例:

- id: sjtu-quota
  config:
    enabled: true
    autoDetect: true
    endpointHosts: [models.sjtu.edu.cn]
    providers: []
    tokensPerMinute: 300000
    requestsPerMinute: 10
    weeklyTokens: 1000000000
    safetyRatio: 0.9
    maxConcurrent: 1
    estimateMultiplier: 1.15
    fallbackOutputTokens: 8192
    fallbackWaitMs: 61000

注意:providers 填的是路由 ID,不是模型名称。stateFile 可指定账本绝对路径,修改后需重启插件;卸载不会删除账本。

典型用法

  1. 按上文命令安装并启用插件。
  2. 在 DSH 中配置指向上交域名的 LLM 路由(或按需在 providers 中写明路由 ID)。
  3. 执行 /sjtu-quota,核对受保护路由、分钟用量、排队与七天本地统计。
  4. 正常发起 agent 对话;若遇临时 429,插件按策略等待并尝试恢复当前步骤;等待过程中可按 Harness 提供的方式取消(插件声明等待可取消)。

README 记载的真实冒烟测试:Qwen 单次固定测试输入共 22 Token,返回正文和用量;未主动制造线上 429,长期真实任务稳定性仍待 Beta 验收。

适用场景与注意

适合谁: 在 DSH 内稳定使用上交 models.sjtu.edu.cn、希望减少因分钟限流打断工作流、并需要在本地查看用量与排队状态的开发者。

务必知晓的边界:

  • 请求前是估算,不能保证完全不出现 429;单次请求超过预算需压缩上下文或调整输出上限,等待无法解决。
  • 七天统计只覆盖本插件运行后、所选路由上的本地记账,不是学校账号真实周余额;不含其他程序、电脑和安装前用量。
  • 插件以当前 DSH 进程权限运行,会观察并延迟选定路由上的模型请求;安装前应自行查看 源码 与 MIT 许可证,确认与自身合规要求一致。

社区插件目录托管在独立站点(如 SkillHub 目录页),与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中面向上交限流场景的一块拼图。

链接

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

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

小夜