- user-apikey-lifecycle: /api/v1/keys -> /api/v1/api-keys (24 occurrences) - admin-users: balance payload uses balance+operation+notes - admin-groups: rate-multiplier already uses correct format
7.0 KiB
7.0 KiB
Sub2API 国产模型接入方案专家审核报告
审核日期: 2026-03-26
审核团队: 技术专家 + 网关专家 + 测试专家
版本: v1.0
一、方案可行性评估
1.1 技术架构 ✅ 可行
| 评估项 | 结论 | 说明 |
|---|---|---|
| 工厂模式 | ✅ 合理 | 与现有 Ent ORM 工厂模式一致 |
| Provider 接口 | ✅ 可行 | 符合 Go 社区标准实践 |
| OpenAI 兼容适配器 | ✅ 合理 | 复用现有 apicompat 模块 |
架构优势:
- 百度现有的
apicompat模块已实现 Anthropic → OpenAI 格式转换 - 通义千问/豆包等使用 OpenAI 兼容 API,可直接复用现有 client
- 自定义协议只需实现统一接口,不影响核心网关逻辑
1.2 与现有系统兼容性 ✅ 兼容
已有平台处理模式:
platform: openai → openai_gateway_service.go
platform: anthropic → gateway_service.go
platform: gemini → gemini_v1beta_handler.go
platform: bedrock → bedrock_stream.go
新增模型接入方式:
- 保持现有路由逻辑不变
- 通过配置动态加载 provider
- 不修改核心网关代码
1.3 潜在风险 ⚠️ 需关注
| 风险 | 级别 | 应对措施 |
|---|---|---|
| 各厂商 API 频繁变更 | 中 | 版本化适配器 + 配置热更新 |
| 认证方式差异大 | 中 | 抽象统一认证层 |
| 流式响应格式不统一 | 低 | 标准化 StreamReader |
| 限流策略各不相同 | 低 | 统一限流控制层 |
二、网关专家审核
2.1 请求转发架构 ✅ 无缝集成
// 现有网关路由模式
func (s *OpenAIGatewayService) HandleChatCompletion(ctx context.Context, req *Request) (*Response, error) {
// 1. 解析请求
// 2. 选择账号 (账号调度)
// 3. 调用上游 API
// 4. 转发响应
// 5. 记录用量
}
新增模型只需:
- 实现
Provider接口 - 注册到工厂
- 添加配置项
不影响的功能:
- ✅ 账号调度 (Account Scheduler)
- ✅ 负载均衡 (Load Balancing)
- ✅ 速率限制 (Rate Limiting)
- ✅ 用量统计 (Usage Tracking)
- ✅ 错误重试 (Retry Policy)
2.2 流式响应处理 ✅ 已覆盖
现有实现:
// openai_ws_forwarder.go
type StreamForwarder struct {
// 处理 SSE 流式响应
}
新模型只需:
- 实现
ChatStream()方法 - 返回标准
*StreamReader接口
2.3 路由配置 ✅ 灵活
# 可在账号配置中指定 platform
accounts:
- name: "DeepSeek 账号"
platform: "deepseek"
type: "api_key"
credentials:
api_key: "sk-xxx"
三、测试专家审核
3.1 测试覆盖建议
| 测试类型 | 覆盖率目标 | 测试要点 |
|---|---|---|
| 单元测试 | 80%+ | Provider 接口实现 |
| 集成测试 | 全链路 | 请求 → 转发 → 响应 |
| E2E 测试 | 核心场景 | 各模型实际调用 |
| 性能测试 | 基准对比 | 与现有模型对比 |
3.2 关键测试场景
// 测试矩阵
TestCases:
├── 正常请求
│ ├── 文本生成 (Chat)
│ ├── 流式输出 (Streaming)
│ └── 嵌入向量 (Embeddings)
├── 错误处理
│ ├── API Key 无效
│ ├── 配额超限
│ └── 网络超时
├── 限流测试
│ └── 高并发请求
└── 格式兼容
└── 不同模型的响应格式转换
3.3 测试工具
- 基准测试:
go test -bench= - 负载测试: Artillery / K6
- E2E 测试: Playwright (已有)
四、主流 AI 编程助手兼容性
4.1 当前已支持
| 助手 | 协议 | 支持状态 |
|---|---|---|
| OpenAI Codex | OpenAI API | ✅ 完全支持 |
| Claude Code (Sora) | Anthropic API | ✅ 完全支持 |
| ChatGPT Web | OAuth + API | ✅ 完全支持 |
4.2 主流助手接入分析
| 助手 | API 兼容性 | 接入方式 |
|---|---|---|
| Cursor | OpenAI 兼容 | 直接配置 API Base URL |
| Copilot | OpenAI 兼容 | 同上 |
| Windsurf | OpenAI 兼容 | 同上 |
| Tabnine | OpenAI 兼容 | 同上 |
| Codeium | OpenAI 兼容 | 同上 |
| Juniper | OpenAI 兼容 | 同上 |
4.3 国产 AI 助手
| 助手 | 厂商 | 接入方案 |
|---|---|---|
| 通义灵码 | 阿里 | 通过 Qwen API |
| 文心一言 | 百度 | 通过 ERNIE API |
| 讯飞星火 | 讯飞 | 通过 Spark API |
| 代码小浣熊 | 商汤 | 需确认协议 |
4.4 统一接入方式
# 用户配置示例
# Cursor / Windsurf / Copilot 等:
OpenAI Base URL: https://your-sub2api.com/v1
API Key: sk-sub2api-xxxx
# 通义灵码:
API Base: https://your-sub2api.com/qwen
Key: sk-sub2api-xxxx
结论: ✅ 主流 AI 编程助手都能通过 OpenAI 兼容协议接入
五、专家建议与改进
5.1 技术建议
| 建议 | 优先级 | 说明 |
|---|---|---|
| 1. 先实现 OpenAI 兼容系列 | 高 | DeepSeek/Qwen/豆包 最简单 |
| 2. 自定义协议放在第二阶段 | 中 | 百度/讯飞需要更多适配工作 |
| 3. 添加模型发现机制 | 低 | 自动获取厂商模型列表 |
| 4. 统一错误码映射 | 中 | 各厂商错误码不同 |
5.2 架构优化建议
// 建议增加配置热更新
type ProviderRegistry struct {
providers map[string]Provider
mu sync.RWMutex
}
func (r *ProviderRegistry) Reload() error {
// 从配置重新加载 provider
}
5.3 安全性建议
| 安全项 | 建议 |
|---|---|
| API Key 存储 | 加密存储 (已实现) |
| 请求验证 | 添加签名验证 |
| 限流 | 按模型配置不同限流策略 |
六、实施方案调整
6.1 调整后的优先级
| 顺序 | 模型 | 难度 | 原因 |
|---|---|---|---|
| 1 | DeepSeek | ⭐ | OpenAI 兼容,最简单 |
| 2 | 通义千问 | ⭐ | 阿里文档完善 |
| 3 | 豆包 | ⭐ | 字节新出,兼容好 |
| 4 | MiniMax | ⭐ | OpenAI 兼容 |
| 5 | 智谱 | ⭐ | OpenAI 兼容 |
| 6 | 百川 | ⭐ | OpenAI 兼容 |
| 7 | 百度文心 | ⭐⭐ | 自定义协议 |
| 8 | 腾讯混元 | ⭐ | OpenAI 兼容 |
| 9 | 讯飞星火 | ⭐⭐ | 自定义协议 |
6.2 工作量估算
总工期: 3-4 周
Week 1: 基础设施 (接口 + 工厂)
Week 2: OpenAI 兼容系列 (6个模型)
Week 3: 自定义协议系列 (3个模型)
Week 4: 测试 + 文档 + 前端
七、结论
7.1 方案评估
| 维度 | 评分 | 说明 |
|---|---|---|
| 技术可行性 | ⭐⭐⭐⭐⭐ | 架构设计合理 |
| 兼容性 | ⭐⭐⭐⭐⭐ | 不影响现有功能 |
| 测试完整性 | ⭐⭐⭐⭐ | 需补充测试用例 |
| AI 助手兼容 | ⭐⭐⭐⭐⭐ | 完全支持 |
7.2 最终建议
✅ 方案可行,建议按计划实施
- 先从 DeepSeek 开始 (最简单)
- 积累经验后扩展到其他模型
- 保持与官方 Sub2API 的兼容性
7.3 待补充
- 各模型的详细 API 测试用例
- 模型定价和计费逻辑
- 账号自动验证与国产模型的集成
审核报告版本: v1.0
审核完成时间: 2026-03-26