Ai-Sentry は、透明な Python + DAPR ベースのプラグイン可能な Generative AI ファサード レイヤーであり、Generative AI ソリューションを開発および運用する大企業向けに次の機能をサポートするように設計されています。
さまざまな openAI コンシューマ間でのトークン使用量に対するクロス チャージ バック
情報の PII ストリッピングを切り替える機能を備えた、リクエスト/レスポンスの非同期ベースのロギング。このレベルのログは、法的遵守だけでなく、新しいモデルに対するリクエスト/レスポンスの評価とリプレイなど、既存のユーザーに影響を与えずにモデルのアップグレードに対処するのに役立つなど、多くのことに役立ちます。
Azure openAI の応答ヘッダー負荷メトリックと、同じモデル機能を持つ複数のバックエンドのプーリングを考慮した、よりスマートな負荷分散
ストリーミング応答と非ストリーミング応答をサポート (これらのログを含む)
クライアント側から SDK / API の非推奨に対処するのに役立つカスタム アダプターの拡張性。そのため、必要に応じて下位互換性を提供できます。
AI-Sentry は、Azure APIM などの既存の API Gateway ソリューションを置き換えるようには設計されていません。むしろ、API Gateway と openAI エンドポイントの間に位置するように設計されており、openAI ソリューションに究極の制御を提供します。
コンシューマへのレイテンシを最小限に抑えるために、直接 HTTP 呼び出しパイプラインの外側で重い処理を実行するよう努め、DAPR サイド カーと Pub/Sub パターンに依存して作業を非同期的に実行します。
AI-Sentry は DAPR を使用するためです。ログの永続化のためのテクノロジーの選択肢と、メッセージ ブローカーは DAPR のネイティブ コンポーネントを介して交換可能です。この例では、REDIS と Event Hubs を PUB/SUB のメッセージ ブローカーとして使用し、CosmosDB をログ永続ストアとして使用します。
次の環境変数が存在する必要があります。それらをどのようにフィードするかはあなた次第です - つまり、Kubernetes シークレット、構成マップなど...
名前 | 価値 | 成分 |
---|---|---|
AI-セントリー-エンドポイント-構成 | JSON 値の例はここにあります。これは、openai エンドポイント/デプロイメントをマッピングするために使用されます。そのため、負荷分散を行うときに、プールから同じ openAI モデルのグループをヒットします。 エンドポイント URL 構成に /openai を必ず含めてください。次のスクリプトを利用すると、この JSON の JSON エスケープ文字列を生成できます。 | ファサードアプリ |
AI セントリー言語キー | Congnitive Services の一般 API キー | CosmosDB ワーカー |
AI セントリー言語エンドポイント | あなたの言語のテキスト分析または一般的なサービスエンドポイントの URL | CosmosDB ワーカー |
Azure APIM やその他の API ゲートウェイ テクノロジなど、AI-Sentry をどのようなもので使用する場合でも、必須の HTTP ヘッダーを提供する必要があります。
HTTPヘッダー名 | HTTPヘッダー値 |
---|---|
AI-セントリー-コンシューマー | これは任意の文字列にすることができます。これは、消費者または生成 AI バックエンドを使用する製品を表すために使用されます。これはログ記録の目的で使用されます |
ai-sentry-ログレベル | これにより、実際のコンシューマのログ レベルが切り替わります。受け入れられる値は次のとおりです: COMPLETE、PII_STRIPPING_ENABLED、または DISABLED |
ai-セントリー-バックエンド-プール | AI-SENTRY-ENDPOINT-CONFIG 構成からプールの名前を指定します。例: プール1 |
AIセントリーアダプター | openai エンドポイントにリクエストを送信する前に、実行するアダプター名のリストを指定します。例: ["SampleApiRequestTransformer","adapter2..."] |
ご使用の環境で AI-Sentry をセットアップする方法の詳細については、次の詳細セクションに従ってください。
CosmosDB データベース/テーブルのセットアップ
AKS での AI-Sentry のセットアップ
CosmosDB ログ スキーマ
概要ログスキーマ
Workload Identity のセットアップ - API キーの代わりに JWT 経由で openai バックエンドを認証する場合
ありがたいことに、同僚の Graeme Foster が同様の機能セットを備えたドットネット バージョンを公開しています。ぜひチェックしてみてください: https://github.com/microsoft/aicentral
このプロジェクトは貢献と提案を歓迎します。 ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。