Repository navigation
Sub2API 0.2.16
AI API Gateway Platform - 将 AI 订阅配额分发和管理
Important
本版本为 0.2.16:在完整保留 Fork 自有功能的前提下追平上游 Wei-Shaw/sub2api 的 main
(v0.2.16,Claude Haiku 5.5 与 Gemini 显式缓存),版本号沿用上游编号 0.2.16。
latest 与 0.2.16 均指向本版本。
0.2.16 大于此前的 0.2.15 / 0.2.14 / 0.2.13,应用内「检查更新」可正常提示升级。
Note
本次为 0.2.16(2026-10-13):在 0.2.15 的基础上,合并上游 main 的 47 个提交
(3a6fd1c9d → 4d9ac3e48)。发布产物为 Docker 镜像(GHCR + Docker Hub 双 registry),
Release 零附件。
移植来源
- 来源一:上游
Wei-Shaw/sub2api分支main- 来源提交:
4d9ac3e48(v0.2.16,2026-10-13);上次移植基准3a6fd1c9d - 本次增量:47 个提交(含合并提交),213 个文件(+13886 / −727)
- 来源提交:
- 新增迁移:无
- 版本号:
backend/cmd/server/VERSION为0.2.16
上游增量(v0.2.16)
Gemini 显式缓存(本次最大特性)
- 支持显式上下文缓存:覆盖 AI Studio、Vertex 与自建网关上游(
cachedContents) - 缓存存储价内置官方价,并按 Pro / Flash 系列兜底;3.6 Flash 兜底价改为官方优惠价
- 缓存修改串行化、失败回滚;确定金额费用按 Key / 订阅预留
- 缓存错误透传收窄到上游网关账号,延长沿用创建时的计费口径
- 恢复流程区分「账号已删除」与「暂不支持缓存」;上游必已过期后作废意图
- 引用缓存不存在的 403 不再停用账号并换号
Gemini / Vertex 账号能力
- Vertex 账号支持 API Key 认证;Vertex 服务账号支持同步上游模型列表
- 适配 AI Studio
AQ.格式 Key - 模型列表与模型详情接口支持 Agent Platform (Vertex) 账号
- 第三方上游 API Key 与 Vertex 不再套用 AI Studio 等级和模拟配额
- 界面显示名统一为 Agent Platform (Vertex)
网关与计费
- 接入 Claude Haiku 5.5,并接入 Responses 桥接(含采样边界与默认模型配置修正)
- Responses 到 chat 的兜底保留 Responses 语义;结构化输入回退增加不安全重试护栏
- Antigravity 图片模型限流隔离
- 账号计数、Bedrock 与重试耗尽入口把上游模型交给错误处理
- 显式模型级 401 规则在网关故障转移入口生效
- 识别国际版 coding 端点(配额)
- Ops:Gemini 原生路由的网关本地错误按错误类型归类
其他
- 分组名称与描述支持多语言(广场
Vary保留 Origin,译文语言代码统一大小写) - 账号同步上游模型失败时显示后端返回的错误原因
- 依赖安全更新:SheetJS、Vue 与 source-map 补丁
- 前端:模型白名单回归用例纳入 CI
Fork 侧保留与合并处理
本次合并共 24 个冲突文件,全部按「保留 Fork 行为 + 采纳上游新增」处理:
- ent 生成代码:
ent/migrate/schema.go、ent/runtime/runtime.go由go generate ./ent
按合并后的 schema 重新生成(groups.i18n字段加入后列索引整体位移,手改极易静默错位)。
生成结果与生成器幂等,未引入仓库既有形态之外的新文件。 wire_gen.go:provideCleanup实参按函数形参顺序取两侧并集(57 个实参),
补入上游新增的geminiCachedContentService。gateway_usage_billing.go:采纳上游的recordUsageMultipliers/recordUsageBillingModel
辅助函数,并把 Fork 的账号级分组倍率(account.UserGroupRateMultiplier())、
宿主工具基准倍率baseMultiplier与withModelBillingConfig策略快照恢复进去。gemini_messages_compat_service.go:Fork 的SelectAccountForAIStudioEndpoints/
ForwardAIStudioGET已被上游的SelectAccountForModelsEndpoints/ForwardListModels
取代,删除重复实现;并把 Fork 的projectGeminiLaneSelection(代理车道投影)接到上游选号函数上,
车道语义不丢。gemini_v1beta_handler.go保留 Fork 的 API Key 并发槽保护。openai_account_runtime_block_fastpath.go:保留 Fork 直调策略主体的写法(调用方已重置
401 连击),同时采纳上游的临时不可调度作用范围(scope)判定。openai_gateway_responses_chat_fallback.go:保留 Fork 的 DeepSeek 原生 compaction
改写分支,startTime跟随上游改为形参传入。scheduler_cache.go:候选投影键取并集(Fork 的model_mapping_mode+ 上游 Gemini 显式缓存键)。available_channel_handler.go:userAvailableGroup采纳上游的i18n字段,
toUserAvailableGroup同步带上,保证分组文案本地化不丢。model_plaza_handler.go:上游的语言本地化包装与 Fork 的用户禁用模型过滤合并为
toLocalizedModelPlazaGroups(..., deniedModels)。usage_handler.go:观察者分支保留 Fork 的管理端 DTO,并补上Localized(新增
AdminUsageLog.Localized),满足「用户侧分组 DTO 必须本地化」的上游守卫测试。- 其余(
admin_group.go、dto/types.go、dto/mappers.go、account_test_service.go、
repository/wire.go、前端 i18n 与各 spec)均为并集。
验证
- 本地校验(Linux,Go 1.27.2 / Node 22):
- 后端:
go build ./...、go vet ./...、gofmt -l全部通过;
go test -tags=unit ./...全绿 - 前端:
vue-tsc --noEmit0 错误、eslint . --max-warnings 00 problem、
关键清单 vitest 80 个文件 / 1390 个用例全部通过
- 后端:
- 工作树检查:无残留冲突标记,
git status干净 - 未包含:
backend/config/config.yaml(上游/ranxi 误提交的线上部署配置,含明文凭据,
本仓无任何引用,持续不引入)
升级说明
- 升级方式:管理后台左上角「检查更新」一键升级;或
curl -sSL https://raw.githubusercontent.com/ziyue67/sub2api/v0.2.16/deploy/install.sh | sudo bash -s -- upgrade - 回滚方式:
install.sh rollback <version> - Docker:
docker pull ghcr.io/ziyue67/sub2api:0.2.16 - 镜像只提供
linux/amd64单架构,标签0.2.16/0.2.16-amd64/latest - 数据库迁移:本版本不含新增迁移;升级前请备份数据库
- 安装脚本与在线更新服务的默认仓库为
ziyue67/sub2api
Fork 自有功能
- Codex 292 门票(x-codex-turn-state)打票与注入、上游剩余额度探测、账号代理车道
- 管理员请求采集、凭证守护、账号质量运维、Excel / BPS 协议
- Mihomo 托管 / 动态代理区域、Pelican 定时演练、图片创作 / 画布 / Studio Bridge
- 邮件广播、模型广场、Claude 重置额度查询、网站工单、账号运维告警、受控渠道实验
- 发布流水线:双 registry 推送;
latest只由 Release 写;二进制归档停发
Docker 镜像(ziyue67/sub2api)
ziyue67/sub2api:latest
ziyue67/sub2api:0.2.16
ghcr.io/ziyue67/sub2api:latest
ghcr.io/ziyue67/sub2api:0.2.16
拉取示例:
docker pull ziyue67/sub2api:0.2.16
docker pull ghcr.io/ziyue67/sub2api:0.2.16