この記事では、Python チャット アプリケーションでロード テストを実行するプロセスについて説明します。このプロセスでは、一般的なオープン ソースロード テスト ツールである、Retrieval Augmented Generation (RAG) パターンを使用します。 ロード テストの主な目的は、チャット アプリケーションで予想される負荷が、現在の Azure OpenAI Service トランザクション /分 (TPM) クォータを超えないようにすることです。 負荷の高いユーザーの動作をシミュレートすることで、アプリケーションの潜在的なボトルネックとスケーラビリティの問題を特定できます。 このプロセスは、大量のユーザー要求に直面した場合でも、チャット アプリケーションの応答性と信頼性を維持するために重要です。
注
この記事では、記事内の例とガイダンスの土台として、1 つ以上の AI アプリ テンプレートを使用しています。 AI アプリ テンプレートを使用すると、デプロイが容易な保守性の高い参照実装が提供されます。 AI アプリの高品質な開始点を確保するのに役立ちます。
[前提条件]
Azure サブスクリプション。 無料で作成できます。
開発コンテナー は、この記事を完了するために必要なすべての依存関係を持つ両方のサンプルで使用できます。 開発コンテナーは、GitHub Codespaces (ブラウザー) で実行することも、Visual Studio Code を使用してローカルで実行することもできます。
RAG を使用した Python チャット アプリ。 いずれかの負荷分散ソリューションを使用するようにチャット アプリを構成した場合、この記事は負荷分散のテストに役立ちます。 負荷分散ソリューションには 、Azure Container Apps が含まれます。
ロード テスト サンプル アプリを開く
ロードテストは、Python チャットアプリのソリューションにおける Locust テストとして含まれています。 その記事に戻り、ソリューションをデプロイしてから、その開発コンテナー開発環境を使用して次の手順を完了します。
テストの実行
ロード テスト用のローカスト パッケージをインストールします。
python -m pip install locustローカストテストファイルの locustfile.py を使用して、ローカストを開始します。 リポジトリのルートで見つけることができます。 このサンプルには、ユーザーが質問し、チャット アプリから回答を受け取るユーザーをシミュレートする
ChatUserクラスがあります。locust ChatUserhttp://localhost:8089などの、稼働中のLocustのWebサイトを開きます。Locust Web サイトに次の値を入力します。
プロパティ 価値 ユーザー数 20 準備 1 Host https://<YOUR-CHAT-APP-URL>.azurewebsites.net
[ Swarm の開始] を選択してテストを開始します。
テストの進行状況を確認するには、[ グラフ ] を選択します。
リソースをクリーンアップする
ロード テストが完了したら、リソースをクリーンアップします。 この記事で作成した Azure リソースは、Azure サブスクリプションに課金されます。 今後これらのリソースが必要になるとは思わない場合は、削除して、より多くの料金が発生しないようにします。 この記事に固有のリソースを削除したら、忘れずに他のチャット アプリのチュートリアルに戻り、クリーンアップ手順に従ってください。
これらのリソースをクリーンアップするには、チャット アプリの記事に戻 ります 。
ヘルプを取得する
このロード テスターの使用で問題が発生した場合は、リポジトリの [問題] Web ページに問題を追加します。