# One API系统架构与实现笔记
## 一、系统概述
One API是一个大模型API管理与分发系统,通过统一的OpenAI API格式来访问不同类型的大语言模型。它具有以下特点:
1. **基础架构**:
– 依赖MySQL作为核心数据库(2c4g配置下QPS上限约1000)
– 未来计划集成Redis以提高性能
– 存储向量信息但不进行向量计算,主要存储用户相关信息
2. **请求处理**:
– 每次请求涉及约6次select操作和2次update操作
– 已开启批量update配置以优化性能
3. **模型支持**:
– 支持多种模型类型:embedding、LLM、代码生成等
– 所有模型请求均需通过One API进行转发
– 大模型一般最高支持100 RPS (每秒请求数)
## 二、系统架构
### 分层结构
系统采用多层次的组织结构:
用户(User) --> 分组(Group) --> 渠道(Channel) --> 模型(Model)
### 渠道定义
渠道(Channel)是One API系统中的关键概念:
1. **功能定位**:
– 作为不同模型服务的接入点
– 连接分组和模型,直接与模型关联
– 是模型调用的直接管理者
2. **配置灵活性**:
– 一个渠道可以配置多个模型,实现模型服务的灵活组合
– 渠道可以通过分组机制控制用户访问权限
3. **实现示例**:
不同模型提供商的渠道配置:
– 火山引擎:支持一个订阅
– 阿里云:支持一个订阅
– Azure:较复杂,按订阅做限流,一个应用对应一个订阅
– 支持多区域部署,有些区域访问可能不稳定
– 支持global endpoint,但稳定性也有挑战
## 三、系统部署架构
## 四、管理与监控
1. **监控能力**:
– 提供One API耗时分析
– 支持渠道调整,如FastGPT售后咨询场景(主要使用ChatGPT模型)
2. **性能与效果评估**:
– 支持模型准确率统计
– 可区分性能问题和效果问题
## 五、技术实现原理
One API的核心功能是统一接入不同大模型API,主要通过以下方式实现:
1. **API一致性**:
– 采用OpenAI API格式作为标准接口
– 对非OpenAI格式的API进行转换适配
2. **多渠道支持**:
– 支持20+主流大模型,包括OpenAI、Azure、Claude、Google Gemini等
– 对各种模型API的差异进行统一处理
3. **高可用设计**:
– 通过令牌池管理多账号资源
– 实现失败自动重试
– 支持多机部署
## 六、常见使用场景
1. **API密钥管理**:
– 集中管理多渠道的API密钥
– 通过令牌系统控制访问权限和使用量
2. **渠道负载均衡**:
– 在多个相同模型的渠道间分发请求
– 自动切换到可用渠道,提高稳定性
3. **限流与计费**:
– 对用户请求进行限流控制
– 支持不同计费模式和倍率设置
4. **模型映射与重定向**:
– 支持将用户请求从一个模型重定向到另一个模型
– 实现模型能力的灵活调配
## 七、高级功能
1. **批量操作**:
– 支持批量创建渠道
– 支持批量生成和导出兑换码
2. **分组管理**:
– 用户分组和渠道分组管理
– 为不同分组设置不同的倍率
3. **监控与告警**:
– 查看额度明细
– 配合第三方监控系统实现告警