# Subapi 技术能力分析与用户供应场景补充

> 本文档回答关于 subapi 技术深度、供应商能力、风险评估，以及补充"用户分享LLM供应"的详细设计。

---

## 1. Subapi 技术深度评估

### 1.1 技术了解程度：**足够深入**

| 维度 | 评估 | 证据 |
|------|------|------|
| 协议支持 | ⭐⭐⭐⭐⭐ | OpenAI/Anthropic/Gemini 完整兼容 |
| 契约设计 | ⭐⭐⭐⭐⭐ | 已有详细的 Connector 契约文档 |
| 错误处理 | ⭐⭐⭐⭐ | 三类错误归一，重试机制完善 |
| 流式支持 | ⭐⭐⭐⭐ | SSE/WebSocket 均已实现 |

### 1.2 已掌握的技术细节

- **Connector 契约**：`subapi_connector_contract_v1_2026-03-17.md` 明确定义了请求/响应/错误归一模型
- **认证机制**：支持 Bearer Token、x-api-key、x-goog-api-key
- **版本治理**：生产环境锁定精确版本，周级升级窗口
- **风险点**：已识别 2 个 P0 问题（内网隔离、query key 边界）

---

## 2. Subapi 当前供应商能力

### 2.1 已支持的供应商

| 供应商 | 模型支持 | 认证方式 | 状态 |
|--------|----------|----------|------|
| **OpenAI** | GPT-3.5/4/5 全系列 | API Key | ✅ 稳定 |
| **Anthropic** | Claude 2/3/4 全系列 | API Key / OAuth | ✅ 稳定 |
| **Google Gemini** | Gemini 2/3 全系列 | API Key / OAuth | ✅ 稳定 |
| **Antigravity** | Claude 4.5+ / Gemini 2.5+ | OAuth | ✅ 稳定 |
| **Sora** | 图片/视频生成 | API Key | ✅ 稳定 |
| **AWS Bedrock** | Claude/Titan 等 | AWS 凭证 | ✅ 稳定 |
| **百度文心** | ERNIE 系列 | API Key | ✅ |
| **讯飞星火** | Spark 系列 | API Key | ✅ |
| **腾讯混元** | Hunyuan 系列 | API Key | ✅ |
| **Perplexity** | Pro/Labs | API Key | ✅ |

### 2.2 供应商能力总结

- **总计**：10+ 供应商，100+ 模型
- **海外主力**：OpenAI、Anthropic、Gemini（支持 OAuth 授权）
- **国内支持**：百度、讯飞、腾讯（API Key 方式）
- **⚠️ 注意**：subapi 不支持用户自己挂载账号给平台，只支持平台统一管理上游账号

---

## 3. 关键发现：Subapi 不支持"用户分享LLM供应"

### 3.1 Subapi 现有模式

```
平台方（管理员）→ 添加上游账号 → 分发给用户使用
```

- 平台方统一管理所有 LLM 供应商账号
- 用户使用平台生成的 API Key 调用
- 优点：统一管理、计费简单
- 缺点：无法实现"用户分享多余配额"

### 3.2 用户想要的模式

```
用户A（供应方）→ 挂载自己账号的剩余配额 → 平台售卖 → 用户B（需求方）使用
```

- 任何用户可以把自己的 LLM 账号/配额挂载到平台
- 平台验证账号有效性后接受供应
- 平台将配额卖给其他用户
- 供应方获得收益分成

### 3.3 结论

**Subapi 没有实现"用户分享LLM供应"功能！**

这意味着用户的独特场景需要**在我方平台层实现**，而不是依赖 subapi。

---

## 4. 风险评估

### 4.1 Subapi 集成风险

| 风险项 | 级别 | 缓解措施 |
|--------|------|----------|
| 内网隔离缺失 | P0 | 新增 SEC-007/008 任务 |
| query key 边界歧义 | P0 | 新增 SEC-009 强制测试 |
| 接管率口径冲突 | P1 | COMP-007 统一 canonical |
| CN 平台硬编码 | P1 | COMP-008 配置表驱动 |

### 4.2 商业风险

| 风险项 | 级别 | 说明 |
|--------|------|------|
| 用户供应功能需自研 | 高 | 供应侧功能不在 subapi 范围内 |
| ToS 合规风险 | 高 | 需严格审查各供应商条款 |
| 供应商账号封禁 | 中 | 需多账号冗余 + 备用通道 |

---

## 5. 用户分享LLM供应 - 完整设计补充

### 5.1 功能定位

这是**平台独有功能**，不在 subapi 范围内，需要我方平台层实现。

### 5.2 业务流程

```
┌─────────────────────────────────────────────────────────────────────────┐
│                     用户供应LLM配额业务流程                               │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  供应方（用户A）              平台                      需求方（用户B） │
│       │                       │                           │           │
│       ▼                       │                           │           │
│  1. 注册/登录                 │                           │           │
│       │                       │                           │           │
│       ▼                       │                           │           │
│  2. 挂载LLM账号               │                           │           │
│  (API Key/OAuth)             │                           │           │
│       │                       │                           │           │
│       ▼                       │                           │           │
│  3. 平台验证账号               │                           │           │
│  (有效性/额度/合规)           │                           │           │
│       │                       │                           │           │
│       ▼                       │                           │           │
│  4. 设置供给配额               │                           │           │
│  (挂载量/售价)               │                           │           │
│       │                       │                           │           │
│       ▼                       │                           │           │
│  5. 供应上线                  │                           │           │
│       │───────────────────────┼───────────────────────────┤           │
│       │                       │                           │           │
│       │                       ▼                           │           │
│       │                  6. 平台展示                       │           │
│       │                  (套餐列表)                       │           │
│       │                       │                           │           │
│       │                       ▼                           │           │
│       │                       │                    7. 购买套餐      │
│       │                       │                           │           │
│       │                       ▼                           │           │
│       │                       │              8. 获取平台调用凭证    │
│       │                       │                           │           │
│       │                       ▼                           │           │
│       │                       │                    9. 调用LLM服务   │
│       │                       │◀──────────────────────────┘           │
│       │                       │                                       │
│       ▼                       ▼                                       │
│  10. 收益到账            11. 平台抽成                                │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘
```

### 5.3 核心模块设计

#### 5.3.1 账号挂载模块

| 功能 | 说明 |
|------|------|
| **挂载方式** | API Key 手动输入 / OAuth 授权 |
| **支持的供应商** | 与平台支持列表一致 |
| **账号验证** | 调用供应商 API 验证有效性 |
| **额度获取** | 调用供应商 API 获取剩余额度 |
| **合规检查** | 检查是否违反供应商 ToS |

#### 5.3.2 套餐发布模块

| 功能 | 说明 |
|------|------|
| **最小挂载量** | 平台设定最低额度（如 $10） |
| **最大挂载量** | 根据账号类型和历史表现设定 |
| **定价规则** | 供应方设置售价，平台设定最低价 |
| **有效期** | 可选择日/月/永久 |
| **状态管理** | 上架/下架/售罄/过期 |

#### 5.3.3 调度与计费模块

| 功能 | 说明 |
|------|------|
| **请求调度** | 优先用低价/空闲供应，保障成功率 |
| **额度扣减** | 实时扣减供应方额度 |
| **账单生成** | 记录每笔交易的 token 量和费用 |
| **收益计算** | 供应方收益 = 售价 × 消耗量 × 60% |

#### 5.3.4 风控模块

| 功能 | 说明 |
|------|------|
| **账号健康** | 监控账号可用性、额度消耗异常 |
| **欺诈检测** | 检测恶意套现、虚假额度 |
| **ToS 合规** | 检测供应商禁止的调用模式 |
| **保证金** | 供应方需缴纳保证金（防违约） |

### 5.4 数据模型

```sql
-- 供应方账号表
CREATE TABLE supply_accounts (
    id BIGINT PRIMARY KEY,
    user_id BIGINT NOT NULL,
    platform VARCHAR(50) NOT NULL,  -- openai/anthropic/gemini/baidu/...
    account_type VARCHAR(20) NOT NULL,  -- api_key/oauth
    encrypted_key VARCHAR(500),  -- 加密存储
    display_name VARCHAR(100),
    status VARCHAR(20),  -- pending/active/suspended
    verified_at TIMESTAMP,
    created_at TIMESTAMP DEFAULT NOW()
);

-- 供应套餐表
CREATE TABLE supply_packages (
    id BIGINT PRIMARY KEY,
    supply_account_id BIGINT NOT NULL,
    model VARCHAR(100) NOT NULL,
    available_quota DECIMAL(20, 6),  -- 可用额度
    sold_quota DECIMAL(20, 6) DEFAULT 0,  -- 已售额度
    price_per_1m DECIMAL(20, 6),  -- 每百万tokens价格
    status VARCHAR(20),  -- active/sold_out/expired
    valid_until TIMESTAMP,
    created_at TIMESTAMP DEFAULT NOW()
);

-- 供应方收益表
CREATE TABLE supply_earnings (
    id BIGINT PRIMARY KEY,
    user_id BIGINT NOT NULL,
    supply_package_id BIGINT NOT NULL,
    consumption_tokens BIGINT NOT NULL,
    consumption_amount DECIMAL(20, 6) NOT NULL,
    platform_share DECIMAL(20, 6) NOT NULL,  -- 平台抽成
    supplier_share DECIMAL(20, 6) NOT NULL,  -- 供应方收益
    created_at TIMESTAMP DEFAULT NOW()
);
```

### 5.5 与现有系统的集成

| 模块 | 集成点 | 说明 |
|------|--------|------|
| **认证系统** | 复用现有用户体系 | 供应方需完成实名认证 |
| **计费系统** | 复用账务引擎 | 供应方收益计入用户余额 |
| **风控系统** | 复用合规引擎 | 账号需通过 ToS 检查 |
| **API 网关** | 新增路由规则 | 识别供应来源，调度到对应账号 |

### 5.6 实施计划

| 阶段 | 时间 | 任务 | 交付 |
|------|------|------|------|
| **S0-a** | W1-W2 | 账号挂载模块开发 | 挂载/验证/下架功能 |
| **S0-b** | W3-W4 | 套餐发布模块开发 | 上架/定价/展示功能 |
| **S0-c** | W5-W6 | 调度与计费模块开发 | 实时调度/扣减/账单 |
| **S0-d** | W7-W8 | 风控模块开发 | 健康监控/欺诈检测 |
| **S0-e** | W9-W10 | 内部测试与修复 | 试运行 |
| **S0-f** | W11-W12 | 首批供应方引入 | 10家供应方 |

---

## 6. 结论与建议

### 6.1 结论

1. **Subapi 技术掌握充分**：已有详细的契约文档，可以完成集成
2. **Subapi 供应商覆盖全**：10+ 供应商，100+ 模型
3. **用户供应功能缺失**：Subapi 不支持，需平台层自研

### 6.2 建议

1. ✅ 继续推进 Subapi 集成（技术可行）
2. ✅ 补充用户供应功能的自研计划（当前规划缺失）
3. ✅ 将 S0 阶段延长，增加供应侧功能开发
4. ✅ 优先在 S0-e 阶段引入首批供应方进行验证

---

**文档状态**：补充说明
**关联文档**：
- `llm_gateway_subapi_evolution_plan_v4_1_2026-03-18.md`
- `subapi_connector_contract_v1_2026-03-17.md`
