AI API Gateway Platform - 将 AI 订阅配额分发和管理
本版新增单 Key 模型策略、VIP 自动垫付与余额耗尽预测提醒,方便管理员按用户提供差异化服务;同时补充 Serverless 按客户端 IP 绑定和失联回主站,并修复账号刷新、用量展示及已删除分组残留问题。
单 Key 模型映射与固定推理强度(#644)
- 管理员可在「用户管理 → API Keys → 密钥模型设置」为一把 Key 单独设置模型映射和推理强度,管理员自己的密钥编辑窗口也提供入口。例如为 Key A 配置
gpt-6.1-sol → gpt-5.6-sol和high,其他 Key 保持原行为。 - 默认不映射、推理强度跟随客户端。模型精确匹配且只映射一次,原模型和目标模型均需通过权限校验;固定强度仍受分组上限约束,上游需支持所选档位。
- 模型映射覆盖 Responses(含 compact)、Chat Completions、Messages 及 WebSocket 每轮请求;固定推理强度用于 OpenAI 兼容通路及转发至 OpenAI 的 Messages 桥接。图片、音频、embeddings 等未应用策略的入口保持原行为。用量保留原请求模型与实际转发模型,计费遵循本次实际应用的映射及显式渠道计价来源。
- 保存后新请求使用新配置;运行中请求保留入场快照,排队请求或 WebSocket 后续轮次发现策略变化时需要重试或重新连接。
VIP 自动垫付与应收核销(#654)
- 管理员可为指定用户启用低余额自动垫付,配置触发阈值、固定垫付金额和未收款上限;默认关闭,保存配置不会立即发放。用户列表显示待收款金额并提供管理入口。
- 符合条件时增加实际余额,同时记录独立应收账目及备注「自动充值需索取费用」。这属于管理员垫付,不产生支付成功订单,也不计入充值实收;收到全款后由管理员二次确认核销,核销不会再次加余额。
- 整笔垫付必须满足剩余上限;同一扣费周期不会重复发放,后续真实扣费可重新评估。禁用配置保留历史,不支持部分垫付或部分核销。
- 区域副本不发放垫付,不新增区域余额写入通路;余额不足的恢复尝试有次数边界,仍需重新完成鉴权。
余额耗尽预测提醒(#658)
- 「系统设置 → 邮件」新增独立预测开关,默认关闭;默认提前 12 小时提醒,每个连续预警期最多 3 轮、每小时最多一轮。复用已验证通知邮箱、充值链接和退订偏好,原金额提醒保持独立。
- 按最近 24 小时已结算的余额消费估算小时消耗,再结合当前余额计算剩余时间;订阅消费不计入。新用户和刚升级后的观测窗口按实际覆盖时间计算,样本或结算覆盖不足时不发送。
- 通知额度和预警期持久保存,重启或关闭再开启不会清零。SMTP 结果不确定的轮次也占额度,避免盲目重发,因此实际成功通知可能少于上限;剩余时长恢复到阈值的 120% 以上并持续可靠观测至少一小时后,才可开启新预警期。
- 后台每 5 分钟有界扫描并轮转处理用户,大实例可能需要多个周期覆盖全部候选用户。预测会随用量变化,不是服务可用时长承诺。
Serverless 绑定与监控口径
- 按 Key/IP 分别绑定(#653):既有 Serverless 地区路由新增
api_key_ip选项,同一 Key 的不同客户端 IP 可绑定不同节点;默认仍按 Key 绑定。失联回主站默认关闭,开启后只在业务转发前处理,不重放已发送请求、SSE 或 WebSocket 会话。切换绑定范围前需排空会话,回退后不会自动切回恢复的节点。详见路由说明。 - 上游 HTTP 错误率(#649):账号性能区新增本进程接收到的上游 HTTP 响应错误比例,展示样本量和覆盖窗口。HTTP 200 的流内业务错误不属于此指标;无响应的传输失败不作为 HTTP 样本,进程重启会清空记录,不代表全站或跨节点错误率。
- 统一 Responses SSE/WS semantic 首 token 判定(#648、#650):明确的 reasoning item/part 或有效内容可建立首语义事件,created、heartbeat、空 delta 和仅终态不建立。补齐多行 SSE 与事件头处理,优先级统计对未完成或格式不完整的 SSE 载荷保留未知状态。保留原有转发、重试和计费边界;不重算历史 TTFT,也不改变 TPS 分母,不据此宣称供应商响应变快。
修复
- 账号列表自动刷新会同步上游渠道绑定、地址和计价声明等变更;打开编辑窗口、切换列表或离开页面后取消过期请求,避免旧响应覆盖当前编辑(#657)。
- 用量表限制过长 API Key 名称的列宽,并支持查看完整名称,避免挤占其他列(#651)。延迟摘要继续展示服务端首 token 和总时长,移除重复的转发前等待细节,底层计时数据与口径保留(#652)。
- 删除分组时在同一事务内清理 API Key 附加关联,读取历史绑定时排除已删除分组,避免编辑密钥时携带不可访问的分组而失败(#659)。
升级注意
- 相对 v2.19.4 新增数据库迁移 327–332,包含 Key 策略字段、VIP 配置/应收/审计、余额缓存失效记录及预测通知状态和索引。升级前备份数据库并评估大表索引的锁等待;回退二进制不会撤销已发放垫付、应收账目或通知额度。
- API Key 鉴权缓存升级到 v32;共享缓存的实例应协调升级,使用区域鉴权快照的部署需发布匹配版本快照。Serverless 新绑定方式也要求入口与目标节点运行兼容版本,避免混合版本切换会话归属。
- VIP 垫付和预测提醒均需管理员显式开启。既有密钥未配置模型策略时保持原行为;已有 Serverless 配置省略新字段时仍按 Key 绑定、失联返回错误。
本次发布 GitHub Release、镜像和下载产物,未执行生产部署或数据库迁移。
📥 Installation
Docker:
# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.19.5One-line install (Linux):
curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.19.5/deploy/install.sh | sudo bash -s -- install -v v2.19.5Manual 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.19.5/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.19.5Defaults: namespace tosky-canary, Deployment tosky-nerd; override with --namespace NAME --deployment NAME.
Upgrade every instance sharing Redis to this release.