システム概要
OpenModexは、アプリケーションとAIモデルプロバイダーの間に位置します。すべてのリクエストは、最適なプロバイダーに到達する前に、インテリジェントなミドルウェアのパイプラインを通過します。リクエストフロー
1
認証
APIキーが検証され、アカウント、チーム、レート制限にマッピングされます。
2
レート制限
リクエストがティアのレート制限(キーごと、分ごと)に対してチェックされます。正確なスライディングウィンドウの適用にはRedisソートセットを使用します。
3
キャッシュチェック
プロンプトキャッシュが有効な場合、OpenModexは完全一致のキャッシュされたレスポンスをチェックします。キャッシュヒットはプロバイダーコストゼロで即座に返されます。
4
ルーティング判断
ルーティングエンジンが、戦略(コスト、レイテンシー、または品質)、現在のプロバイダーの健全性、フォールバック設定に基づいて最適なプロバイダーを選択します。
5
プロバイダーリクエスト
リクエストはターゲットプロバイダーの形式に変換されて転送されます。OpenModexはリアルタイムのSSEストリーミングパススルーをサポートしています。
6
レスポンス + メタデータ
プロバイダーのレスポンスはOpenAI形式に正規化され、OpenModexメタデータ(ルーティング情報、コスト、レイテンシー)が付加されてアプリに返されます。
コアコンポーネント
APIゲートウェイ
- OpenAI互換REST API — OpenAIのAPIのドロップイン置換
- SSEストリーミング — リアルタイムのトークンごとの配信
- べき等性 —
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でハッシュ化されます