GenAI Gateway - 🧪 Azure API Management で構築する GenAI Gateway が提供する価値
AI の急速な進歩により、組織が業界の最前線に立ち続けるためには、実験主導のアプローチが求められています。AIがさまざまなセクターで着実にゲームチェンジャーになりつつある中、その潜在能力を最大限に引き出すことを目指す企業にとって、ペースの速いイノベーションの軌道を維持することは非常に重要です。
AIサービス は主に API を介してアクセスされるため、堅牢で効率的なAPI管理戦略が不可欠であることが浮き彫りになっています。この戦略は、AI サービス の消費に対する制御とガバナンスを維持するのに役立ちます。
AI サービス の視野が広がり、API とのシームレスな統合が進む中、API 管理の基本原則を広げる包括的な AI ゲートウェイ パターンに対する需要が高まっています。高度なユースケースの実験を加速し、この急速に進化する分野でのさらなるイノベーションへの道を開くことを目指しています。AI ゲートウェイ の適切に設計された原則は、インテリジェント アプリ を運用環境に自信を持ってデプロイするためのフレームワークを提供します。
このリポジトリでは、一連の実験ラボを通じて AI Gateway パターンについて説明します。 Azure API Management の GenAI Gateway 機能 は、これらのラボ内で重要な役割を果たし、セキュリティ、信頼性、パフォーマンス、全体的な運用効率、およびコスト管理がカバー範囲となります。 主な焦点は、大規模言語モデル (LLM) の標準リファレンスを設定する Azure OpenAI にあります。ただし、同じ原則と設計パターンを任意の LLM に適用できる可能性があります。
特に AI の領域で Python の優位性が高まっていることと、Jupyter Notebook の強力な実験機能を利用して構成されている次のラボは、Jupyter Notebook を中心に構成されており、Python スクリプト、Bicep ファイル、Azure API Management ポリシーが内包されています:
🧪 Backend pool load balancing (built-in) | 🧪 Advanced load balancing (custom) |
組み込みの負荷分散 Azure API Management のバックエンド プール機能 を Azure OpenAI エンドポイントの一覧またはモック サーバーに対して試すためのプレイグラウンド。 | Playground では、Azure OpenAI エンドポイントの一覧またはモック サーバーに対して (カスタム Azure API Management ポリシー に基づく) 高度な負荷分散をお試しください。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Access controlling | 🧪 Token rate limiting |
Playground では、ID プロバイダーを使用して OAuth 2.0 認証機能 を試し、特定のユーザーまたはクライアントによる OpenAPI API へのより詳細なアクセスを可能にします。 | 1 つ以上の Azure OpenAI エンドポイントに対して トークン レート制限ポリシー を試すためのプレイグラウンド。トークンの使用量を超えると、呼び出し元は 429 を受け取ります。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Token metrics emitting | 🧪 Semantic caching |
emit token metric policy を試すためのプレイグラウンド。このポリシーは、Azure OpenAI Service API を介した大規模な言語モデル トークンの消費に関するメトリックを Application Insights に送信します。 | セマンティックキャッシングポリシーを試すためのプレイグラウンド。プロンプトの以前の要求へのベクトル近接性と、指定された類似性スコアのしきい値を使用します。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Response streaming | 🧪 Vector searching |
Azure API Management と Azure OpenAI エンドポイントを使用して応答ストリーミングを試し、ストリーミング に関連する長所と短所を調べるためのプレイグラウンド。 | Azure AI Search、Azure OpenAI 埋め込み、Azure OpenAI 補完を使用して Retrieval Augmented Generation (RAG) pattern を試すためのプレイグラウンド。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Built-in logging | 🧪 SLM self-hosting (phy-3) |
Azure API Managementの組み込みログ機能を試すためのプレイグラウンド。App Insights に要求を記録して、詳細とトークンの使用状況を追跡します。 | OpenAI API と互換性がある Azure API Management セルフホステッド ゲートウェイ を通じて、セルフホステッド phy-3 Small Language Model (SLM) を試すためのプレイグラウンド。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 GPT-4o inferencing | 🧪 Message storing |
新しいGPT-4oモデルを試すための遊び場。GPT-4o(「オムニ」の「o」)は、テキスト、オーディオ、ビデオ入力の組み合わせを処理するように設計されており、テキスト、オーディオ、および画像形式で出力を生成できます。 | Log to event hub ポリシーを使用して Cosmos DB にメッセージの詳細を格納するテストを行うためのプレイグラウンド。このポリシーを使用すると、DBに保存されるデータ(プロンプト、完了、モデル、リージョン、トークンなど)を制御できます。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Developer tooling (WIP) | 🧪 Function calling |
Azure API Management で利用可能な開発者ツールを試して、AI Service API を開発、デバッグ、テスト、公開するための プレイグラウンド。 | Azure API Management によって管理される Azure Functions API で OpenAI 関数呼び出し 機能を試すためのプレイグラウンド。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Model Routing | 🧪 Prompt flow |
Azure OpenAI モデルとバージョンに基づいてバックエンドへのルーティングを試すためのプレイグラウンド。 | Azure API Management で Azure AI Studio プロンプト フロー を試すためのプレイグラウンド。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
🧪 Content Filtering | 🧪 Prompt Shielding |
Azure API Management を Azure AI Content Safety と統合して、潜在的に不快なコンテンツ、危険なコンテンツ、または望ましくないコンテンツをフィルタリングしてみるプレイグラウンド。 | Azure AI Content Safety サービスの Prompt Shields を試すためのプレイグラウンドでは、LLM 入力を分析し、敵対的入力の 2 つの一般的な種類であるユーザー プロンプト攻撃とドキュメント攻撃を検出します。 |
🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 | 🦾 Bicep ➕ ⚙️ Policy ➕ 🧾 Notebook 🟰 💬 |
- Python 3.8 or later version installed
- VS Code installed with the Jupyter notebook extension enabled
- Azure CLI installed
- An Azure Subscription (Contributor 以上のロール)
- Access granted to Azure OpenAI or just enable the mock service
- Sign in to Azure with Azure CLI
- このリポジトリをクローンし、前提条件を使用してローカル コンピューターを構成します。または、GitHub Codespaceを作成し、ブラウザまたはVSCodeで実行します。
- 利用可能なラボをナビゲートし、ニーズに最も適したラボを選択します。手始めに、バックエンドプールの負荷分散をお勧めします。
- ノートブックを開き、提供された手順を実行します。
- AI-Gateway Mock server は、OpenAI API の動作と応答を模倣するように設計されているため、Azure API Management やその他のユース ケースとの統合に関するテストおよび開発目的に適した効率的なシミュレーション環境が作成されます。app.py をカスタマイズして、モックサーバーを特定のユースケースに合わせて調整できます。
- Tracing - トレースを有効にして OpenAI API を呼び出し、トレース情報を返します。
- Streaming - ストリームを有効にして OpenAI API を呼び出し、応答をチャンクで返します。
Azure Well-Architected Framework は、ワークロードの品質を向上させることができる設計フレームワークです。次の表は、Well-Architected Framework の柱を持つラボをマッピングし、アーキテクチャの実験を通じて成功するための準備を整えています。
このトピックでは、多数のリファレンスアーキテクチャ、ベストプラクティス、およびスターターキットを利用できます。包括的なソリューションやプロジェクトを開始するためのランディングゾーンが必要な場合は、提供されているリソースを参照してください。AI-Gateway ラボを活用して、リファレンス アーキテクチャに統合できる追加の機能を見つけることをお勧めします。
- AI Hub Gateway Landing Zone
- GenAI Gateway Guide
- Azure OpenAI + APIM Sample
- AI+API better together: Benefits & Best Practices using APIs for AI workloads
- Designing and implementing a gateway solution with Azure OpenAI resources
- Azure OpenAI Using PTUs/TPMs With API Management - Using the Scaling Special Sauce
- Manage Azure OpenAI using APIM
- Setting up Azure OpenAI as a central capability with Azure API Management
- Introduction to Building AI Apps