====== Sub2API —— 一站式开源 AI API 中转与分发管理平台 ====== **Sub2API** 是一个一站式开源 AI API 中转与分发管理平台(基于 Go + Vue 3 开发)。 简单来说,它的核心功能是**把各种 AI 服务的订阅额度(如 ChatGPT Plus、Claude Pro、Grok 订阅等)或官方 API 密钥整合起来,统一转化为标准的 API 接口分发给下游用户使用**。它常用于个人多账号管理、团队内部额度共享或中转服务运营。 ---- ===== 核心功能特性 ===== * **多账号与订阅管理**:支持集成主流 AI 平台的不同账户类型,包括标准的 **API Key 模式** 以及基于 **OAuth 的订阅账号模式**。 * **智能调度与会话粘性(Sticky Sessions)**:内置智能路由算法,能够自动选择最优的上游渠道,并支持会话粘性,确保同一个对话上下文尽可能路由到同一个账号。 * **精确的 Token 级计费**:支持对用户的请求进行 Token 级别的实时统计与费用计算,具备并发控制(限制单用户或单账号并发数)和速率限制(Rate Limiting)。 * **内置自服务支付系统**:免去了单独部署支付模块的麻烦,直接原生支持 EasyPay、支付宝、微信支付和 Stripe,方便用户自主充值。 * **简易的管理面板**:提供直观的 Web 可视化看板,方便管理员监控流量、管理用户、配置渠道,并支持通过 iframe 嵌入外部系统(如工单系统)。 ---- ===== 支持的特色厂商与协议 ===== * **Grok / xAI 深度支持**:支持 Grok 订阅账号(通过 OAuth PKCE 流程免密接入)及标准 API Key。兼容 Grok CLI 客户端配置,支持全新的 ''grok-4.5'' 等文本模型及 ''grok-imagine'' 媒体生成模型,并能被动解析上游的频率限制请求头以更新额度状态。 * **Antigravity 专线支持**:为 Antigravity 账号提供专用路由端点(支持 Claude 与 Gemini 模型),并支持**混合调度模式**(将标准端点流量自动路由至 Antigravity 账号)。 * **OpenAI WebSocket 接入限制**:针对高级编程工具(如 Codex CLI 等)使用的 WebSocket 长连接,提供了完善的超时、空闲关闭及基于 Redis 协同的单 Key 连接数上限保护。 * **当前不可用状态**:项目文档指出 **Sora 相关功能目前由于上游技术问题暂时不可用**。 ---- ===== 技术栈与部署方式 ===== ==== 技术栈 ==== * **后端**:Go 1.25.7、Gin 框架、Ent (ORM) * **前端**:Vue 3.4+、Vite 5+、TailwindCSS * **数据/缓存**:PostgreSQL 15+、Redis 7+ ==== 部署方法 ==== - **一键脚本(推荐 Linux)**:通过官方提供的 ''install.sh'' 脚本,可自动下载二进制文件并注册为 systemd 服务。 - **Docker Compose(推荐生产)**:官方提供 ''docker-compose.local.yml'',采用本地目录挂载,极大地方便了后续的数据迁移和打包备份。 - **Apple Container**:专门为 M 系列芯片的 Mac(macOS 26+)开发者提供了基于 ''apple-container.sh'' 的本地工作流。 - **源码编译**:支持使用 ''-tags embed'' 将前端打包进 Go 二进制文件中,实现单文件部署。 ---- ===== ⚠️ 关键安全与运维提示 ===== * **Nginx 反向代理陷阱**:如果使用 Nginx 代理 Sub2API 并对接 Codex 等工具,**必须**在 ''http'' 块中加入 ''underscores_in_headers on;'',否则 Nginx 会默认丢弃带下划线的请求头(如 ''session_id''),导致智能路由的粘性失效。 * **生产环境必须强制 HTTPS**:项目在关闭 URL 白名单时默认允许不安全的 HTTP 请求。在生产环境中,必须显式将 ''allow_insecure_http'' 设置为 ''false'',否则 API Key 会明文传输,极易遭受中间人(MITM)攻击。 * **极简模式(Simple Mode)**:如果是个人或内部团队使用,可以设置环境变量 ''RUN_MODE=simple'',系统将自动隐藏所有 SaaS 商业化功能并跳过计费流程。 * **开源协议**:项目采用 **GNU Lesser General Public License v3.0 (LGPL-30)** 开源,开发者 Wesley Liddick 明确声明**从未授权任何个人或组织利用该项目进行商业化商业运营**,使用风险需由用户自行承担。