Skip to content

Sub2API 2.17.6

Choose a tag to compare

@github-actions github-actions released this 27 Oct 07:59
· 25 commits to production since this release
a7ba38d

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

本版面向使用智能运维的站长,修复优先调度的统计身份与冷样本刷新,新增渠道运维视图和凭证异常原因展示,并提供可选的 Jev 原生质量判题。发布范围为 v2.17.5 对应基线 e2316d931015a9ec67955401147fb9ab3bfa52b2 至 a7ba38d873ff97faf3a127a97ab808d8860bb8b8,包含 #572–#575。

优先调度:统计、刷新与延迟惩罚(#572)

  • 修复渠道或模型映射后统计漏算、串用的问题:用客户端公开模型、精确分组和实际入站端点归属 HTTP attempt;持久化延迟、收益读取公开模型,质量探测读取独立路由模型。不同模型别名、分组和入口的错误样本分别累计;进程内统计重启后重新积累,不代表多实例全局成功率。
  • 已持久化的冷样本采用 5 秒历史缓存,成熟样本仍为 30 秒,并增加全进程有界异步读取预算。页面继续跟读已就绪的空历史,普通粘性请求也可触发读取;查询失败和缺失证据保留未知。5 秒是缓存策略,数据库、排队与可见性延后仍可能发生,不承诺端到端刷新时限。
  • 普通可迁移会话遇到有效延迟惩罚时进入现有评分选号流程,保留原绑定;provider-bound previous_response_id、任务所有权和加密亲和等仍保留归属,不重放已发送请求。
  • 延迟惩罚可选「延迟优先调度」(软降档,默认)或「停止调度」。停止模式只拒绝精确账号×公开模型×分组的新请求/WS turn,覆盖粘性、后备及等待后复查;不打断已准入输出。全部不可用或停止模式历史尚不可用时返回可重试的暂不可用,HTTP 为 503 / Retry-After: 5;未知不伪装成慢。惩罚仍从有效慢用量行的 created_at 计时,读取不续期;默认 10 分钟,0 表示持续惩罚。

渠道运维:渠道 → 上游 → 账号(#573)

智能运维新增「渠道运维」,支持人工上游分类、账号搜索分页、分配/改派/解除及逐级下钻。使用 revision 拒绝旧页面覆盖,改派和删除需明确确认;分类只用于运维展示,不参与路由、定价或账号分组,不从凭据地址推断供应商。

页面展示持久化 TTFT 的 p50/p90/p95、总耗时、有效/未知样本、模型映射谱系,以及按计划+完整轮次+模型聚合的质量历史。用量渠道取自历史 channel_id;上游按当前人工归属回看,改派不改写历史。质量和错误日志的渠道/分组范围另有当前账号归属限制;没有完整请求失败分母时不展示推算错误率,5xx 不自动等同降智。配置并发上限也不等于实时负载。未分配账号保留独立桶,查询失败与成功无样本分别展示。

凭证运维:解释异常并保留刷新控制(#574)

巡检、token 刷新和重登记录新增安全的原因、阶段、时间与建议动作,区分手机号验证、账号退役、需要重登、密码/MFA、安全验证、限流、超时及网络等已识别信号。刷新失败另存为历史观测,不用账号当前状态推断旧错误,后续成功也不擦除历史。

修复上游以 error.type 返回 invalid_grant 等白名单机器码时丢失刷新控制标记的问题,保留既有竞争恢复、不可重试及 provider 配置错误隔离。显式 error.code 优先,未知或畸形 code 不转用 type/message;不通过自由文本推断控制指令。旧 Worker、笼统或未知上游错误仍为 unknown,安全验证继续人工处理。

验证包含离线 Worker、真实 mock HTTP 链及隔离 PostgreSQL 竞争恢复接缝;这些证据没有证明真实上游登录或账号恢复成功。Session Studio 服务端归属、Turb 实际部署来源仍未确认,不能将未知信号写成已查明根因。

质量判题:保留分组+模型,增加可选 Jev(#575)

质量规则可继续使用普通「分组+模型」判题,也可显式选择「Jev(复用安全审计 TypeSafe 配置)」。kind 省略或为 llm 时沿用原路径;Jev 使用原生 /v1/systemone choice,独立判断 correct / incorrect / unknown,不把审计风险概率当质量分,也不回退普通业务账号。

Jev 需要全局风控与内容审计开启、mode 非 off,且保存的 TypeSafe profile 使用 jev-latest;无需切换活动审计引擎。置信度及对应选项概率均至少 0.9 才采纳明确结论,这只是未经真实语料校准的保守门槛。缺配置、拒绝、超时、非法响应和低确定性均保留 unknown,不作为质量不合格或恢复依据。复用配置与上游额度,质量请求的 Key 健康状态与审计隔离;每进程最多 4 并发、全程最多 30 秒,不承诺性能或价格收益。

兼容既有端点新增的可选 id/provider metadata:仅接受非空、无控制字符且长度有界的字符串,校验后忽略其值。其他未知字段、重复键、超深或超大响应继续拒绝,不放宽判题语义。

真实历史回放累计尝试 200 个不同样本:153 条合法 choice、38 条旧解析器失败、8 条超时、1 条中断未决;metadata 兼容问题已修复。合法结果中与旧 judge 同 verdict 为 152/153(99.35%),其中 1 条为合法 unknown。这是有界窗口中的一致率,不能解释为准确率:旧 judge 不是人工真值,存在抽样及成功响应选择偏差,未证明抗注入能力。人工语义复核、维护者 UI 验收及来源模式旧客户端保存语义的单独验收仍未完成;不公开真实样本,不以该比例替代这些验收。

升级与回滚

本版新增两份加法迁移:

  • 309_channel_operations.sql:增加渠道 operations_revision 及运维上游/成员表、索引。
  • 309_credential_operation_refresh_failure.sql:为凭证巡检记录增加 refresh_failure_code 与 last_refresh_failure_at,旧行保持空历史。

迁移器按完整文件名排序和记录,并校验内容摘要;两份 309 文件是不同迁移,不能按数字前缀合并、重命名或改写已应用记录。后续升级启动时须让既有迁移器成功应用两份文件;本次发版没有连接或迁移生产数据库,也没有改动支付、结算及业务账本。

回滚旧应用可保留新增表和列,不需要删数据或手工改迁移记录。优先调度旧配置缺少惩罚方式时默认软降档,旧客户端省略该字段由新服务端保留当前值;旧二进制会忽略新方式,不能继续提供停止模式保证。Jev 无新增迁移,旧普通规则保持原语义;回滚前先把 Jev 规则改回普通 LLM 或禁用,旧二进制不理解 kind,不能直接执行已保存的 Jev 规则。

本次仅发布版本与产物,未部署、未重启服务,未声明上述能力已在生产启用。

完整版本差异 · 优先调度说明 · 渠道运维说明 · 凭证异常说明 · Jev 配置与边界


📥 Installation

Docker:

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

One-line install (Linux):

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

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.17.6/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.17.6

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

📚 Documentation