github ranxi2001/sub2api v2.20.4
Sub2API 2.20.4

one hour ago

AI API Gateway Platform - 将 AI 订阅配额分发和管理

本版为 OAuth 的 429 停调策略增加周额度门槛,新增可配置的 API Key 兜底处置,并修复托管 BPS 授权连接被 Responses 选号误排除的问题。包含自 v2.20.3 起合入的 2 个 PR。

  • 429 与 7 天额度联合停调(#781):启用该策略的 OpenAI OAuth 账号,只有同时收到上游 429、且有效的 7 天额度使用率严格大于所填阈值时,才关闭调度。阈值可填写 0~100,默认 98%;等于阈值不关闭,5 小时用量不参与。优先使用本次响应中明确的周窗口;本次观测不完整或非法时不回退旧高值,完全没有本次观测时才使用有效且近期的周用量快照。首次配置只初始化后续新账号,已有策略账号缺少阈值时也按 98% 判断;关闭模板中的勾选项不会清除已有账号策略。自动更换 2FA 仍独立运行,可同时启用。
  • 独立的 API Key 兜底处置(#781):自动配置页中,“兜底处置”与“降智后处置”在桌面左右并排,小屏上下排列。兜底默认关闭且不预选账号,需管理员勾选有效的 OpenAI API Key 账号并保存启用。存在 OAuth 账号但全部不可调度,或选定周期内的 OpenAI 指标低于所填阈值,满足任一条件就自动打开所选账号的调度。指标可选运维监控同口径的 OpenAI SLA 或健康状况分数,阈值 0~100,数据周期 1~1440 分钟;默认 SLA 95%、5 分钟。指标条件依赖运维监控,无有效样本或读取失败时不按指标触发;没有 OAuth 账号也不单独视为故障。面板显示检查时间、指标统计时间、有效样本及最近触发状态。兜底独立于首次配置,由 full 节点后台执行,只自动开启,恢复后需手动关闭;停用规则也不会关闭已开启的账号,不会自动清除错误、冷却或修改凭据。
  • 托管 BPS 按入口能力参与 Responses 选号(#780):修复 OAuth 母账号使用托管 BPS 授权连接时,普通 /v1/responses 回合和原生压缩被错误判为能力不匹配,导致分组报无可用账号或绕过该账号的问题。普通、负载感知和高级调度与发送前的连接能力校验保持一致。旧版 /responses/compact 仍不由 BPS 承接,现在在选号阶段排除不支持的连接;本次不增加 BPS 的 Chat Completions 或 WebSocket 能力,也不表示真实上游已完成生产验收。

**升级与恢复:**相对 v2.20.3 没有新增 SQL 数据库迁移,配置使用已有设置与账号字段。前后端及共享账号的服务实例应配套升级,再启用兜底。升级、关闭模板或回退二进制都不会撤销已经发生的调度开关变化;已停调的 OAuth 和已开启的兜底账号需人工核查。回退旧二进制会恢复原先仅凭 429 即可停调的行为,已启用旧策略的实例应留意这一差异。

完整变更


📥 Installation

Docker:

# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.20.4

One-line install (Linux):

curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.20.4/deploy/install.sh | sudo bash -s -- install -v v2.20.4

Manual download:
Download the appropriate archive for your platform from the assets below.

K3s gateway upgrade (on each existing single-node host):

curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.20.4/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.20.4

Defaults: namespace tosky-canary, Deployment tosky-nerd; override with --namespace NAME --deployment NAME.
Upgrade every instance sharing Redis to this release.

📚 Documentation

Don't miss a new sub2api release

NewReleases is sending notifications on new releases.