# Sub2API（subapi）集成准入清单（商用版）

- 文档日期：2026-03-16
- 评估对象：`sub2api`（用户口语中的 `subapi`）
- 评估目标：判断是否可作为企业级 LLM 通用转发网关中的可集成模块
- 结论类型：产品与架构准入评估（非代码实现设计）

## 1. 执行结论（先看）

1. 是否可集成：**可以**，但建议按“独立服务模块（HTTP/API）”方式集成，而不是 SDK 内嵌。
2. 开源是否完整：**整体完整度高**（含后端、前端、部署、CI、安全扫描、测试）。
3. 是否可直接商用：**有条件可商用**，但必须先完成法务与合规闸门，尤其是上游 ToS 风险审查。
4. 当前建议：按“受控灰度 + 强安全基线 + 明确回滚”推进 PoC，不建议直接全量生产接入。

## 2. 关键证据（本地仓库）

1. 许可证为 MIT（许可层面可商用）：  
[LICENSE](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/LICENSE)
2. README 存在 ToS/研究用途提示（法务红线）：  
[README.md](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/README.md:535)
3. 架构入口是服务化应用装配，不是轻量 SDK：  
[main.go](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/backend/cmd/server/main.go:131)
4. 路由与中间件注册耦合较强，偏完整网关服务：  
[gateway.go](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/backend/internal/server/routes/gateway.go:15)
5. CI、测试、安全扫描链路完整：  
[backend-ci.yml](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/.github/workflows/backend-ci.yml)  
[security-scan.yml](/home/long/project/立交桥/llm-gateway-competitors/sub2api-tar/.github/workflows/security-scan.yml)

## 3. 集成模式优先级（从稳到险）

1. **模式 A：服务化集成（推荐）**
- 做法：Sub2API 作为独立网关服务部署，你的主平台通过内部 API 调用。
- 优点：隔离风险、回滚简单、运维可控、便于灰度。
- 风险：多一层调用与运维成本。

2. **模式 B：反向代理链路集成（次选）**
- 做法：放在现有网关后作为特定模型/渠道的转发层。
- 优点：改动小、接入快。
- 风险：故障定位复杂，链路调试成本较高。

3. **模式 C：Fork 后深度改造（谨慎）**
- 做法：长期维护私有分支并做平台级改造。
- 优点：可控性最高。
- 风险：版本跟进成本大，研发负担重。

## 4. Go/No-Go 判定表（红黄绿）

1. **红线（任一命中即 No-Go）**
- 法务未完成上游 ToS 审查与书面结论。
- 生产仍启用 `simple mode`（跳过关键账单流程风险）。
- 允许 `allow_insecure_http=true`。
- 未启用预算/账单熔断。

2. **黄线（可受限 Go，但必须限流灰度）**
- 仅单可用区部署，无容灾。
- 无审计日志对接（请求、成本、调用人、模型）。
- 监控告警覆盖不足（延迟、错误率、成本突增）。

3. **绿线（可推进扩大流量）**
- 法务通过并形成可追溯结论。
- 生产基线配置全部达标。
- 7 天灰度稳定达标且完成回滚演练。

## 5. 生产硬化配置基线（必须项）

1. 运行模式与账单
- `run_mode=standard`（禁止 `simple`）
- `billing.circuit_breaker.enabled=true`

2. URL 安全策略（默认值需反转）
- `security.url_allowlist.enabled=true`
- `security.url_allowlist.allow_insecure_http=false`
- `security.url_allowlist.allow_private_hosts=false`（如必须访问内网，需最小范围白名单）

3. 代理与入口安全
- `server.trusted_proxies` 显式设置（禁止宽泛信任）
- 对外接口启用统一鉴权、限流、审计字段

4. 功能范围控制
- 首发禁用不稳定能力（如 README 标注不建议生产依赖的模块）
- `gateway.sora_*` 不纳入首发 SLA

## 6. 主要技术风险（按优先级）

1. **合规风险（最高）**
- 代码 MIT 不等于业务合规，ToS 约束来自上游服务条款而非开源许可本身。

2. **架构耦合风险**
- Sub2API 更像完整网关服务，不是可插拔 SDK；深嵌会提升主平台耦合度。

3. **配置误用风险**
- 默认安全开关存在“偏宽松”项，若未硬化会放大 SSRF/内网访问风险面。

4. **可用性与成本风险**
- 若熔断、限流、成本审计不完整，易出现成本失控或突发级联故障。

## 7. 最小 PoC 验收标准（进入下一阶段前）

1. 功能
- 覆盖你规划中的主流模型路由路径（至少 3 家提供商、核心模型调用成功率稳定）。

2. 稳定性
- 在目标并发下，错误率与 p95 延迟满足内部 SLO。

3. 成本
- 能按租户/应用/模型维度统计成本，异常成本有告警和自动熔断。

4. 安全
- 完成白名单策略、鉴权、审计字段落库、关键接口限流。

5. 可运维
- 一键回滚路径清晰，可在约定时限内完成演练回退。

## 8. 灰度与回滚策略（建议模板）

1. 灰度阶段
- 阶段 1：5% 内部流量（1-2 天）
- 阶段 2：20% 非关键业务流量（2-3 天）
- 阶段 3：50% 混合流量（2 天）
- 阶段 4：100%（仅当全部指标连续达标）

2. 观察指标
- 可用性：5xx 比例、超时率
- 性能：p95/p99 延迟
- 成本：每千 token 成本、异常突增
- 业务：成功调用率、用户投诉率

3. 回滚触发阈值（任一满足即回滚）
- 连续 10 分钟错误率超过阈值
- p95 延迟连续 15 分钟超出阈值
- 单小时成本增幅异常（超过预算策略）
- 出现高危安全事件或合规告警

## 9. 对“是否能作为模块”的最终判定

1. **可以作为模块集成**：是，但应定义为“外部服务模块”，非“代码库模块”。
2. **开源是否完整**：是，工程资产完整度高。
3. **当前最大阻碍**：不是代码完整性，而是 ToS 合规与生产配置硬化。
4. **建议决策**：先完成法务闸门与 7 天灰度，再决定是否扩大到主路径。
