AI API Gateway Platform - 将 AI 订阅配额分发和管理
本版修复 OpenAI 长会话中的账号资格变更与 SSE 等待、收尾问题,并完善 DeepSeek Chat→Responses 的推理内容边界和 Codex 严格解析兼容性。
OpenAI 请求与流式响应
- 每轮请求和 WebSocket 握手发出前,重新核对账号状态、分组成员关系、模型票据及代理绑定。账号已停用、到期、移出分组或绑定已变化时,不再继续使用旧的选中结果;显式准入失败会清理相关会话粘性状态。本地拒绝不会被当成上游故障处罚账号或代理。
- HTTP 透传 SSE 的读取不再阻塞超时与心跳处理:按配置执行数据空闲和首个有效输出超时,分片数据计入上游活动,纯心跳不会重置首输出期限。
- 客户端断连后继续读取上游终态与用量;本地读超时保留已观察到的部分用量,并标记结果不完整,不把它当作成功生成或自动重放已发送的请求。图像生成透传沿用图像专用的等待间隔。
上述修复来自 PR #23 和 PR #24,感谢 blackdm666 的贡献。
DeepSeek 与 Codex 兼容
- Chat→Responses 转换不再把推理内容补作最终答案。上游只返回推理、没有正文或工具调用时,会报告明确失败,避免展示推理作为回答或生成成功的空压缩结果。
- 未请求推理摘要,或明确设置
reasoning.summary=none时,不向客户端输出明文摘要;保留现有工具历史缓存和 reasoning 项 ID,支持后续工具历史回传。 - 用量明细对象存在时,
cached_tokens和reasoning_tokens即使为 0 也会输出,修复 Codex 因缺少必填字段而无法解析response.completed、进而判断流异常结束的问题。
会话屏蔽与升级说明
- 引入上游 Wei-Shaw/sub2api#6834,本地 cyber 会话屏蔽只使用认证后的 API Key 和明确会话 ID。IP、User-Agent、缓存键、历史相似度和历史条数不再被当成封锁身份,减少共享网关和长会话的跨会话误拦。上游真实策略拒绝仍正常透传并记录。整合见 PR #20。
- 共用一个 API Key 的网关应为不同用户会话提供互不复用的稳定会话 ID。封锁缓存采用新的 v2 命名空间,旧记录按原 TTL 自行过期;滚动升级时需所有实例完成升级,才能统一使用新逻辑。详见会话屏蔽身份边界。
- 本版没有新增数据库迁移。票据形态检查仍不保证实际模型能力或上游服务等级,不能用来替代业务响应验证。
社区交流现使用 QQ 群「中转技术交流」,群号 1004036018;问题与可复现记录请提交到 Issues。
📥 Installation
Docker:
# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.7.9One-line install (Linux):
curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.7.9/deploy/install.sh | sudo bash -s -- install -v v2.7.9Manual download:
Download the appropriate archive for your platform from the assets below.