Skip to main content

系统概述

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)

路由引擎

路由引擎维护供应商健康和性能的实时视图:

熔断器

自动监控供应商健康状态:
  1. 关闭 — 请求正常路由
  2. 半开 — 连续失败后,流量被节流
  3. 打开 — 供应商被临时从路由池中移除
  4. 恢复 — 定期健康探测恢复供应商

供应商适配器

每个 AI 供应商都被封装在标准化的适配器中,负责处理:
  • 请求格式转换(OpenAI 格式 → 供应商原生格式)
  • 响应标准化(供应商原生 → OpenAI 格式)
  • 错误映射为一致的错误代码
  • 流式协议转换
支持的供应商:

缓存层

  • 精确匹配缓存 — 对(模型 + 消息 + 参数)进行哈希
  • 可配置 TTL — 每个请求 60 秒到 24 小时
  • Redis 支持 — 亚毫秒级缓存查询
  • 成本节省 — 缓存响应按约 50% 的输入费率计费,零输出成本

计费管道

  1. 每个请求向 Kafka 发送一个计费事件
  2. 事件被异步消费并持久化
  3. 账户余额通过 Redis Lua 脚本原子更新
  4. 分析数据刷新到 Apache Doris 用于仪表板和报表

基础设施

安全性

  • API 密钥 在存储时进行哈希处理;仅存储前缀用于查询
  • BYOK 供应商密钥 使用 AWS KMS 信封加密进行加密
  • 速率限制 使用原子 Redis 操作防止竞态条件
  • 所有流量 使用 TLS 1.3 加密
  • 密码 使用 Argon2id 进行哈希处理

数据流图