系统概述
OpenModex 位于您的应用程序和 AI 模型供应商之间。每个请求在到达最优供应商之前,都会经过一系列智能中间件管道。请求流程
1
身份验证
验证您的 API 密钥,并将其映射到您的账户、团队和速率限制。
2
速率限制
根据您的套餐速率限制(按密钥、按分钟)检查请求。使用 Redis 有序集合实现精确的滑动窗口限流。
3
缓存检查
如果启用了提示词缓存,OpenModex 会检查是否存在完全匹配的缓存响应。缓存命中会立即返回结果,无供应商成本。
4
路由决策
路由引擎根据您的策略(成本、延迟或质量)、当前供应商健康状态和故障转移配置选择最优供应商。
5
供应商请求
请求被转换为目标供应商的格式并转发。OpenModex 支持实时 SSE 流式透传。
6
响应 + 元数据
供应商响应被标准化为 OpenAI 格式,附加 OpenModex 元数据(路由信息、成本、延迟),然后返回给您的应用。
核心组件
API 网关
- OpenAI 兼容 REST API — 可直接替代 OpenAI 的 API
- SSE 流式传输 — 实时逐 token 交付
- 幂等性 — 通过
Idempotency-Key头安全重试(24 小时 TTL)
路由引擎
路由引擎维护供应商健康和性能的实时视图:熔断器
自动监控供应商健康状态:- 关闭 — 请求正常路由
- 半开 — 连续失败后,流量被节流
- 打开 — 供应商被临时从路由池中移除
- 恢复 — 定期健康探测恢复供应商
供应商适配器
每个 AI 供应商都被封装在标准化的适配器中,负责处理:- 请求格式转换(OpenAI 格式 → 供应商原生格式)
- 响应标准化(供应商原生 → OpenAI 格式)
- 错误映射为一致的错误代码
- 流式协议转换
缓存层
- 精确匹配缓存 — 对(模型 + 消息 + 参数)进行哈希
- 可配置 TTL — 每个请求 60 秒到 24 小时
- Redis 支持 — 亚毫秒级缓存查询
- 成本节省 — 缓存响应按约 50% 的输入费率计费,零输出成本
计费管道
- 每个请求向 Kafka 发送一个计费事件
- 事件被异步消费并持久化
- 账户余额通过 Redis Lua 脚本原子更新
- 分析数据刷新到 Apache Doris 用于仪表板和报表
基础设施
安全性
- API 密钥 在存储时进行哈希处理;仅存储前缀用于查询
- BYOK 供应商密钥 使用 AWS KMS 信封加密进行加密
- 速率限制 使用原子 Redis 操作防止竞态条件
- 所有流量 使用 TLS 1.3 加密
- 密码 使用 Argon2id 进行哈希处理