本仓库基于 Wei-Shaw/sub2api 最新主线整理,额外加入一个面向中转站站长和第三方采集器的“公开资料出口”功能。
它的目标不是开放后台,也不是暴露账号池,而是把站点本来适合公开的信息标准化输出,方便 PriceAI 或其他采集器自动识别模型价格、分组倍率、缓存命中和可用性状态。
- 公开发现接口:
/.well-known/ai-transit.json - 公开快照接口:
/api/public/transit/v1/snapshot - 可选公开页面:
/public/transit - 后台开关:
系统设置 -> 功能开关 -> 公开资料出口 - 分组价格:充值倍率、分组倍率、平台、模型数量
- 模型明细:模型名、计费模式、输入价、输出价、缓存输入价、缓存创建价、按次/尺寸价
- 缓存指标:累计缓存命中率、缓存命中量、缓存创建量
- 可用性监测:复用现有渠道状态监测数据,展示延迟、可用率和状态
公开资料出口只输出标准化聚合信息,不公开以下内容:
- 上游账号、Cookie、Access Token、Refresh Token
- API Key、密钥、代理配置
- 内部渠道 ID、账号池调度细节
- 用户身份、用户余额、用户请求日志
站长可以只开放机器可读接口,不开放公开页面。
公开资料出口拆成两个开关:
public_transit_enabled:公开资料接口开关,默认开启。public_transit_page_enabled:公开资料页面开关,默认关闭。
如果只想让 PriceAI 或其他采集器自动抓取数据,开启接口即可;如果希望访客也能在站点页面上查看模型价格和可用性,再开启公开页面。
发现接口:
curl https://your-domain.example/.well-known/ai-transit.json返回示例:
{
"schema_version": "ai-transit.v1",
"system": "sub2api",
"snapshot_url": "https://your-domain.example/api/public/transit/v1/snapshot",
"homepage_url": "https://your-domain.example/public/transit",
"generated_at": "2026-07-07T00:00:00Z"
}快照接口:
curl https://your-domain.example/api/public/transit/v1/snapshot快照会包含站点基础信息、公开分组、模型价格、缓存指标和可用性监测摘要。
这个功能已经在本仓库完成实现。对其他站长来说,接入方式不是重新开发,而是像合并一个 PR 一样,把功能提交 2d7e9dec 合入自己的 Sub2API 仓库。
如果你的 Sub2API 版本接近上游主线,推荐直接 cherry-pick:
git remote add public-transit https://github.com/dimthink/sub2api-public-transit.git
git fetch public-transit main
git cherry-pick 2d7e9dec如果你的仓库改动较多,也可以下载同一个提交的 patch 后应用:
curl -L https://github.com/dimthink/sub2api-public-transit/commit/2d7e9dec.patch -o public-transit.patch
git am public-transit.patch遇到冲突时,优先检查这些区域:
- 分组管理:
backend/internal/handler/admin/group_handler.go - 用量统计:
backend/internal/repository/usage_log_repo.go - 设置开关:
backend/internal/service/setting_service.go - 前端分组页:
frontend/src/views/admin/GroupsView.vue - 前端设置页:
frontend/src/views/admin/SettingsView.vue
如果你希望让自己的 Codex、Claude Code、Cursor Agent 或其他代码助手自动接入,可以把下面这段直接发给它:
请把 Sub2API “公开资料出口”功能合并到当前仓库。
参考仓库:
https://github.com/dimthink/sub2api-public-transit
已完成的功能提交:
2d7e9dec feat: expose public transit snapshot
目标:
1. 这不是让你重新实现功能,也不是让你手写一套类似功能。
2. 请像合并 PR 一样,把参考仓库里已经完成的功能提交 `2d7e9dec` 合入当前仓库。
3. 不要把当前仓库替换成参考仓库,不要重置仓库,不要删除数据库、数据卷、部署文件或本地配置。
4. 合并前先检查当前分支、未提交改动和远程来源;如果工作区不干净,先提醒我确认如何处理。
5. 推荐流程:
- git remote add public-transit https://github.com/dimthink/sub2api-public-transit.git
- git fetch public-transit main
- git switch -c feature/public-transit-snapshot
- git cherry-pick 2d7e9dec
6. 如果 cherry-pick 有冲突,只处理冲突文件,把这个提交里的公开资料出口功能合进来;不要借机重构无关代码。
7. 如果当前仓库二改太深,cherry-pick 不适合,再下载同一个提交的 patch 合并:
- curl -L https://github.com/dimthink/sub2api-public-transit/commit/2d7e9dec.patch -o public-transit.patch
- git am public-transit.patch
8. 接入后确认至少存在这些能力:
- /.well-known/ai-transit.json
- /api/public/transit/v1/snapshot
- /public/transit
- 后台“系统设置 -> 功能开关 -> 公开资料出口”中的接口开关和页面开关
9. 接入后运行关键验证:
- go test ./internal/service ./internal/handler ./internal/server ./internal/repository ./internal/web -tags embed
- pnpm --dir frontend run build
10. 如果测试失败,先定位是否是合并冲突或本地二改导致,不要盲目升级依赖。
11. 最后给我输出:
- 接入的 commit hash
- 冲突文件和处理方式
- 验证命令结果
- 部署前需要我确认的风险点
注意:公开资料出口只能公开模型价格、分组倍率、缓存命中和可用性等聚合信息,不能公开账号、密钥、Cookie、Token、内部渠道 ID 或用户数据。
如果你的站点已经有大量二改,建议先让 Agent 创建一个临时分支再接入:
git switch -c feature/public-transit-snapshot应用后建议至少执行:
cd backend
go test ./internal/service ./internal/handler ./internal/server ./internal/repository ./internal/web -tags embed
cd ..
pnpm --dir frontend run build启动服务后检查:
curl -I https://your-domain.example/public/transit
curl https://your-domain.example/.well-known/ai-transit.json
curl https://your-domain.example/api/public/transit/v1/snapshot站点如果希望被自动收录,建议至少满足:
/.well-known/ai-transit.json可公开访问/api/public/transit/v1/snapshot可公开访问- 模型价格字段尽量完整
- 分组倍率和充值倍率真实可用
- 可用性监测保持启用
- 不在公开接口中泄露账号、密钥、Cookie 或内部渠道 ID
本仓库不是重新发行一个独立网关项目,而是基于原版 Sub2API 增加“公开资料出口”能力。原项目的部署方式、数据库结构和后台使用习惯尽量保持不变。
如果上游后续合并了类似功能,建议优先回到上游主线;如果上游暂未合并,可以继续基于本仓库的单一功能提交做兼容接入。