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ストリーミング — リアルタイムのトークンごとの配信
  • べき等性 — 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でハッシュ化されます

データフロー図