285 lines
12 KiB
Markdown
285 lines
12 KiB
Markdown
|
|
# 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`
|