AI API Gateway Platform - 将 AI 订阅配额分发和管理
本版重点改善 Responses 会话在旧账号不可用时的续接,并补齐内容审核、OAuth 周额度判断和后台运维体验。包含 v2.21.2 之后已合入 production 的改动。
会话续接与加密历史
- 409 有损续接覆盖更多场景:开启既有“409 省略加密内容(Beta)”后,HTTP JSON/SSE 请求可从现存可读任务、指令及已完成工具结果重建历史,重新选择可用账号并建立新的上游会话。当前轮尚未发送的 WebSocket 也可保留客户端连接继续选号,无需重开会话。
- 原账号限流或过载也能续接:HTTP 发送前遇到
owner_rate_limited/owner_overloaded时进入上述流程,不再仅提示等待原账号额度重置。原账号的冷却时间保持不变,新账号仍须满足正常权限、额度和调度条件。#834、#852 - 开启 409 Beta 后,可为成功交付的任务保留同任务可读上下文,供后续仅携带对应加密任务标识的请求恢复。记录按用户/API Key、分组、模型、会话和精确任务隔离,最长 30 分钟,每个用户/API Key 最多 8 条、合计 512 KiB;恢复文本继续接受审核,不写入普通正文日志。
- 新增独立的 400 加密历史有损恢复(Beta):原生 HTTP Responses 明确收到加密内容 HTTP 400、已有精确恢复仍无法处理时,可对符合条件的旧历史做一次额外的同账号恢复,最晚不超过本请求第 3 次原生 HTTP 发送。该功能不适用于普通 400、HTTP 200 流内错误、WebSocket、桥接或透传。#835
两个 Beta 均默认关闭,400 与 409 开关彼此独立。恢复可能丢失旧不可读历史,不能恢复密文内容或保证供应商接受;已发送、交付不明或无可读任务依据的请求不自动重放,已完成工具不自动重做。详见 409 续接说明与 400 恢复说明。
审核、调度与请求处理
- 内容审核新增“仅指定上游账号”范围,在实际选号后、生成请求前检查,可与原分组和模型条件组合。默认仍为全部账号;选择指定范围但未选账号时不匹配请求。Responses 工具续轮会提取最近的可读用户输入及其后的工具结果,仅工具结果的增量请求也进入审核,避免因数组末项不是用户消息而漏检。#848、#851
- OpenAI OAuth 的“429 后关闭调度”依据明确的 7 天额度独立判断,不再被相邻 5 小时额度缺失或异常影响。保留
used > threshold条件及默认 98% 阈值;仅有usage_limit_reached文本不视为周额度 100%。 - 临时不可调度规则支持输出前/输出后触发、累计错误次数和独立计数窗口;多实例共享计数,同一响应不重复计数。旧规则缺省行为保持不变。例如可配置“5 分钟内命中 3 次后,冷却模型 30 分钟”。
- 改善 HTTP/2 流被重置时的错误说明与归因,保留先出现的有效业务错误、部分用量和失败终态,修正失败样本去重及多行 SSE 错误处理。
- 修复 Excel BPS 转发
service_tier引起的 422;保留字段校验和 Fast 策略检查,但不向不支持的 BPS 接口发送该字段,不代表 BPS 已支持 Fast。 - BPS 工具参数错误增加脱敏工具名、参数路径及固定校验规则。授权连接回调提交后可核对本次凭据是否实际保存,网络响应丢失时先查询结果,避免重复提交旧授权码。
后台用量与账号运维
- 管理员用量明细支持按请求发生时的平台筛选,列表、汇总与导出使用一致条件;旧记录没有平台快照时显示“未知(历史记录)”,不按账号现状回填。
- Token 使用趋势悬停详情新增分时 RPM/TPM,按该时间格实际覆盖分钟数计算,处理部分小时、服务器时区和夏令时。
- 账号运维组复用可搜索、按类型/分组筛选和跨页保留选择的账号选择器。
- 账号提醒明确展示余额采集开关、采样时间与历史余额,并提供开启采集、刷新及失败反馈;历史余额不参与阈值判断。
- 修复手动质量检测请求被 5xx 检测抢占或被旧配置保存覆盖的问题,并补充定时检测多轮、快照和失败恢复的隔离验证。结果持久化失败后的确认/恢复问题仍需单独处理,本版不宣称整个质量检测问题已全部解决。
升级说明
新增 343_usage_log_platform_snapshot.sql 与 344_usage_log_platform_index_notx.sql:为用量记录增加平台快照,并以并发方式创建平台/时间索引。升级前备份数据库;旧历史平台保持未知,回退二进制不会自动撤销迁移。
上述恢复行为的验证使用隔离数据库/Redis 和虚构上游,不等于真实供应商全部兼容。本次发布不自动开启 Beta,也不代表生产站点已升级。
完整差异:v2.21.2…v2.21.3。
📥 Installation
Docker:
# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.21.3One-line install (Linux):
curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.21.3/deploy/install.sh | sudo bash -s -- install -v v2.21.3Manual 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.21.3/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.21.3Defaults: namespace tosky-canary, Deployment tosky-nerd; override with --namespace NAME --deployment NAME.
Upgrade every instance sharing Redis to this release.