Rag と Locust を使用した Python チャット アプリの負荷テスト
この記事では、RAG パターンと Locust という、多くのユーザーを持つオープンソースの負荷テストツールを使用して、Python チャット アプリケーションの負荷テストを実行するプロセスを説明します。 負荷テストの主な目的は、チャット アプリケーションで予想される負荷が、現在の Azure OpenAI Transactions Per Minute (TPM) のクォータを超えるのを防ぐことです。 負荷の高いユーザーの動作をシミュレートすることで、アプリケーションのボトルネックとスケーラビリティの問題を予知できます。 このプロセスは、ユーザー要求の量が大幅に増えた場合でも、チャット アプリケーションの応答性と信頼性を維持するために重要です。
このチャット アプリの負荷テストの詳細について説明するデモ ビデオをご覧ください。
Note
この記事では、記事内の例とガイダンスの土台として、1 つ以上の AI アプリ テンプレートを使用しています。 AI アプリ テンプレートは、適切にメンテナンスされ、デプロイが容易なリファレンス実装を提供します。これは、高品質な AI アプリの作成を開始するために役立ちます。
前提条件
Azure のサブスクリプション。 無料で作成できます
目的の Azure サブスクリプション内の Azure OpenAI に付与されたアクセス権。 現時点では、このサービスへのアクセスは申請によってのみ許可されます。 Azure OpenAI へのアクセスを申請するには、 https://aka.ms/oai/accessのフォームに入力してください。
Dev コンテナーは両方のサンプルで使用でき、この記事を完了するために必要なすべての依存関係が含まれています。 開発コンテナーは、GitHub Codespaces (ブラウザー) または Visual Studio Code を使用してローカルで実行できます。
- 必要なのは GitHub アカウントのみです
RAG を使用する Python チャット アプリ - いずれかの負荷分散ソリューションを使用するようにチャット アプリを構成する場合は、この記事を参照して負荷分散テストを行ってください。 負荷分散ソリューションには、Azure Container Apps などがあります。
負荷テストサンプル アプリを開く
読み込みテストは、Python チャット アプリ ソリューションで、Locust テストとして使用されます。 その記事に戻り、ソリューションをデプロイしてから、その開発コンテナー開発環境を使用して以下のステップDeployment Environmentsを完了する必要があります。
テストの実行
負荷テストの依存関係をインストールします。
python3 -m pip install -r requirements-dev.txt
Locust を開始します。リポジトリのルートにある locustfile.py ファイルが使用されます。
locust
http://localhost:8089
など、実行中の Locust Web サイトを開きます。Locust の Web サイトに次を入力します。
プロパティ 値 ユーザーの数 20 準備 1 Host https://<YOUR-CHAT-APP-URL>.azurewebsites.net
Swarm を開始を選択してテストを開始します。
テストの進行状況を確認するには、グラフを選択します。
リソースをクリーンアップする
負荷テストが完了したら、リソースをクリーン アップします。 この記事で作成した Azure リソースは、Azure サブスクリプションに課金されます。 今後これらのリソースが必要になるとは思わない場合は、削除して、より多くの料金が発生しないようにします。 この記事のみで使用するリソースを削除した後、必ず他のチャット アプリ チュートリアルに戻り、クリーン アップの手順に従ってください。
チャットアプリの記事に戻り、それらのリソースをクリーンアップします。
ヘルプを取得
この負荷テスト機能の使用で問題が発生した場合は、リポジトリの問題にログを記録します。