このプロジェクトについて
このリポジトリは、GeminiやOpenAIなどの特定のLLMプロバイダーへの直接的な依存関係を抽象化するために設計された、プロバイダー中立的なFastAPIゲートウェイを提供します。アプリケーションは、「gemini-3.5-flash」や「gpt-5.6-terra」といったモデル名をハードコードする代わりに、「fast」、「reasoning」、「cheap」、「embedding」などの安定したエイリアスを通じて機能をリクエストします。このゲートウェイは、プロバイダーの選択、指数バックオフとジッターを伴うリトライロジック、フォールバックルーティング、タイムアウトの強制、エラーの正規化、トークン使用量の追跡、コスト見積もり、およびSQLiteへの使用イベントの永続的な保存を処理します。
主な機能は以下の通りです:
- 順序付けられたフォールバックチェーンによるモデルエイリアスベースのルーティング
- GeminiおよびOpenAI用のプロバイダーアダプター
- JSON Schema制約を使用した構造化JSON出力
- 正規化されたメタデータを伴うテキスト埋め込み
- リクエストIDの伝播とレイテンシヘッダー
- コスト見積もりのための設定可能な価格カタログ
- プロバイダー/モデル別の内訳を含む利用分析エンドポイント
- 非同期テスト、Dockerサポート、およびGitHub Actions CI/CD
- 本番環境におけるAPIキー認証を含むセキュリティコントロール
このアーキテクチャは、アプリケーションロジックとLLMプロバイダーの複雑さとの間の明確な分離を強制します。リクエストコンテキスト用のミドルウェア、型定義されたPydanticレスポンス、および詳細なロギングが含まれています。運用の透明性を維持するため、失敗した試行は成功したものと共に永続化されます。このシステムは拡張可能ですが、コアとなる抽象化と信頼性に焦点を当てるため、JWT認証、ストリーミング、分散レート制限などの高度な機能は意図的に避けています。
セットアップは、リポジトリのクローン、仮想環境の作成、依存関係のインストール、APIキーを含む.envの設定、そしてuvicornまたはDocker経由での実行となります。Swaggerドキュメントは /docs で利用可能です。プロジェクトでは、コード品質とセキュリティのためにRuff、pytest、CodeQL、およびDependabotを使用しています。詳細なNOTES.mdには、設計上の決定事項とAIエンジニアリングプロジェクトの学習目標が記載されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.