チュートリアル: エンタープライズ チャット Web アプリをデプロイする
重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
この記事では、AI Studio で大規模な言語モデルと共に独自のデータを使用するエンタープライズ チャット Web アプリをデプロイします。
データ ソースは、モデルを特定のデータで根拠付けるために使用されます。 根拠付けとは、質問のコンテキストを理解するために、モデルでデータを使用することを意味します。 デプロイされたモデルそのものを変えるわけではありません。 データは、元のデータ ソースに個別に安全に保存されます
このチュートリアルの手順は、次のとおりです。
- データなしでチャット モデルをデプロイしてテストします。
- データを追加します。
- データを使用してモデルをテストします。
- Web アプリをデプロイします。
前提条件
Azure サブスクリプション。無料で作成できます。
AI Studio ハブ、プロジェクト、デプロイされた Azure OpenAI チャット モデル。 まだ実行していない場合は、AI Studio プレイグラウンドのクイックスタートを完了して、これらのリソースを作成します。
サンプル製品データのインデックスを作成するための Azure AI 検索サービスへの接続。
製品データのローカル コピーが必要です。 GitHub の Azure-Samples/rag-data-openai-python-promptflow リポジトリには、このチュートリアル シナリオに関連するサンプルの小売製品情報が含まれています。 具体的には、
product_info_11.md
ファイルにはこのチュートリアルの例に関連する TrailWalker ハイキング シューズの製品情報が含まれます。 お使いのローカル コンピューターにサンプルの Contoso Trek 小売製品データの ZIP ファイルをダウンロードします。Web アプリにデプロイできるようにするには、Microsoft.Web リソース プロバイダーを選択したサブスクリプションに登録する必要があります。
データを追加してチャット モデルをもう一度試す
AI Studio プレイグラウンド のクイックスタート (このチュートリアルの前提条件) では、データなしでモデルがどのように応答するかを確認できます。 ここで、製品に関する質問に答えられるように、モデルにデータを追加します。
このセクションを完了するには、製品データのローカル コピーが必要です。 GitHub の Azure-Samples/rag-data-openai-python-promptflow リポジトリには、このチュートリアル シナリオに関連するサンプルの小売製品情報が含まれています。 具体的には、product_info_11.md
ファイルにはこのチュートリアルの例に関連する TrailWalker ハイキング シューズの製品情報が含まれます。 お使いのローカル コンピューターにサンプルの Contoso Trek 小売製品データの ZIP ファイルをダウンロードします。
以下の手順に従って、データをチャット プレイグラウンドに追加し、アシスタントが製品に関する質問に答えられるようにします。 デプロイされたモデルそのものを変えるわけではありません。 データは、Azure サブスクリプションに個別に安全に保存されます。
Azure AI Studio でプロジェクトに移動します。
左側のウィンドウで [プレイグラウンド]>[チャット] を選択します。
[デプロイメント] ドロップダウンから、デプロイされたチャット モデルを選択します。
チャット プレイグラウンドの左側で、[データの追加]>[+ 新しいデータ ソースの追加] を選択します。
[データ ソース] ドロップダウンで、[ファイルのアップロード] を選択します。
[アップロード]>[ファイルのアップロード] を選択し、ローカル ファイルを参照します。
アップロードするファイルを選択します。 前にダウンロードまたは作成した製品情報ファイルを選択します。 すべてのファイルを今すぐ追加します。 同じプレイグラウンド セッションで、後からファイルを追加することはできません。
[アップロード] を選択して、Azure BLOB ストレージ アカウントにファイルをアップロードします。 [次へ] を選択します。
Azure AI 検索サービスを選択します。 この例では、[Azure AI 検索サービスの選択] ドロップダウンから [その他の Azure AI 検索リソースへの接続] を選択します。 検索リソースがない場合は、[新しい Azure AI 検索リソースの作成] を選択して作成できます。 次に、この手順に戻り、それに接続して選択します。
Azure AI 検索サービスを参照し、[接続の追加] を選択します。
[インデックス名] に「product-info」と入力し、[次へ] を選択します。
[検索設定] ページの [ベクトル設定] で、[この検索リソースにベクトル検索を追加] チェック ボックスをオフにします。 この設定は、モデルがどのように要求に応答するかを決定するのに役立ちます。 [次へ] を選択します。
Note
ベクトル検索を追加する場合、ここで追加コストのためにさらに多くのオプションを使用できます。
設定を確認し、 [作成] を選択します。
プレイグラウンドで、データ インジェストが進行中であることを確認できます。 この処理には数分かかる場合があります。 先に進む前に、状態の代わりにデータ ソースとインデックス名が表示されるまで待機します。
これで、モデルとチャットして前と同じ質問 ("TrailWalker のハイキング シューズはいくらですか") をすることができ、今回はご利用のデータからの情報を使って回答が作成されます。 参照ボタンを展開すると、使用されたデータを確認できます。
Web アプリのデプロイ
Azure AI Studio での体験に満足したら、モデルをスタンドアロンの Web アプリケーションとしてデプロイできます。
Azure portal でお使いのリソース グループを検索する
このチュートリアルでは、Web アプリは AI Studio ハブと同じリソース グループにデプロイされます。 後で、Azure portal で Web アプリの認証を構成します。
以下の手順に従って、Azure AI Studio から Azure portal の次のリソース グループに移動します。
Azure AI Studio でプロジェクトに移動します。 次に、左側のパネルで [設定] を選択します。
リソース グループ名を選択し、Azure portal でリソース グループを開きます。 この例では、リソース グループの名前は
rg-contoso
です。これで、Azure portal に、ハブをデプロイしたリソース グループのコンテンツが表示されるはずです。 ブラウザー タブでこのページを開いたままにします。後でこのファイルを使用します。
Web アプリのデプロイ
発行すると、ご自分のサブスクリプションに Azure App Service が作成されます。 選択した価格プランによっては、コストが発生する場合があります。 アプリの使用が終了したら、Azure portal から削除できます。
Web アプリをデプロイするには、次のようにします。
Note
Web アプリにデプロイできるようにするには、Microsoft.Web リソース プロバイダーを選択したサブスクリプションに登録する必要があります。
前のセクションの手順を完了し、プレイグラウンドにデータを追加します。
Note
独自のデータを使用しても使用しなくても Web アプリをデプロイできますが、「AI Studio プレイグラウンドのクイック スタート」で説明したように、デプロイされたモデルが少なくとも必要です。
[Web アプリにデプロイ] を選択します。
[Web アプリにデプロイ] ページで、次の詳細を指定します。
- 名前: Web アプリの一意の名前。
- サブスクリプション:Azure サブスクリプション。
- [リソース グループ]: Web アプリをデプロイするリソース グループを選びます。 ハブと同じリソース グループを使用できます。
- 場所: Web アプリをデプロイする場所を選択します。 ハブと同じ場所を使用できます。
- 料金プラン: Web アプリの料金プランを選択します。
- Web アプリでチャット履歴を有効にする: チュートリアルでは、[チャット履歴] ボックスが選択されていません。 この機能を有効にすると、ユーザーは以前の個々のクエリと応答にアクセスできます。 詳細については、「チャット履歴の解説」を参照してください。
展開 を選択します。
アプリがデプロイされるのを待ちます (数分かかる場合があります)。
準備ができたら、ツールバーの [起動] ボタンが有効になります。 ただし、まだアプリを起動せず、チャット プレイグラウンド ページも閉じないでください。後で戻ってきます。
Web アプリ認証の構成
既定では、Web アプリにはユーザーのみがアクセスできます。 このチュートリアルでは、認証を追加してアプリへのアクセスを Azure テナントのメンバーに制限します。 ユーザーは自分の Microsoft Entra アカウントでサインインして、アプリにアクセスできます。 必要に応じて、同様のプロセスに従って別の ID プロバイダーを追加できます。 アプリでは、ユーザーのサインイン情報は、ユーザーがテナントのメンバーであることを確認する以外の用途では使用されません。
Azure portal を含むブラウザー タブに戻り (または新しいブラウザー タブで Azure portal をもう一度開き)、ハブと Web アプリをデプロイしたリソース グループの内容を表示します (Web アプリを表示するには、表示を更新することが必要になる場合があります)。
リソース グループのリソースの一覧で、App Service リソースを選択します。
[設定] の下にある折りたたみ可能な左メニューから、[認証] を選択します。
次の設定を使用して ID プロバイダーを追加します。
- ID プロバイダー: ID プロバイダーとして Microsoft を選択します。 このページの既定の設定では、アプリはテナントのみに制限されるため、ここで他の設定を変更する必要はありません。
- テナントの種類: ワークフォース
- アプリ登録: 新しいアプリ登録を作成する
- 名前: Web アプリ サービスの名前
- サポートされているアカウントの種類: 現在のテナント - 単一テナント
- アクセスの制限: 認証が必要
- 認証されていない要求: HTTP 302 リダイレクトが見つかりました - Web サイトに推奨
Web アプリを使用する
もう少しです。 これで Web アプリをテストできます。
認証設定が有効になるまで 10 分ほどお待ちください。
Azure AI Studio のチャット プレイグラウンド ページを含むブラウザー タブに戻ります。
[起動] を選択して、デプロイされた Web アプリを起動します。 プロンプトが表示されたら、アクセス許可要求に同意してください。
認証設定がまだ有効になっていない場合は、Web アプリのブラウザー タブを閉じて、Azure AI Studio のチャット プレイグラウンドに戻ります。 その後もう少しお待ちいただき、もう一度お試しください。
Web アプリで、前と同じ質問 ("TrailWalker のハイキング シューズはいくらですか") をすることができ、今回はご利用のデータからの情報を使って回答が作成されます。 [参照] ボタンを展開すると、使用されたデータを確認できます。
リソースをクリーンアップする
不要な Azure コストが発生しないように、このクイックスタートで作成したリソースが不要になったら削除してください。 リソースを管理するために、Azure portal を使用できます。
解説
チャット履歴
チャット履歴機能を使用することで、ユーザーは以前の個々のクエリと応答にアクセスできます。
Web アプリをデプロイすると、チャット履歴を有効にすることができます。 [Web アプリでチャット履歴を有効にする] チェック ボックスをオンにします。
重要
チャット履歴を有効にすると、リソース グループに Cosmos DB インスタンスが作成され、使用されるストレージに対して追加料金が発生します。 Web アプリを削除しても、Cosmos DB インスタンスは自動的に削除されません。 保存されているすべてのチャットと共に Cosmos DB インスタンスを削除するには、Azure portal 内の関連付けられたリソースに移動して削除する必要があります。
チャット履歴を有効にしたら、ユーザーはこれをアプリの右上隅で表示または非表示にすることができます。 履歴が表示されると、会話の名前の変更や削除を行うことができます。 アプリにログインすると、会話が最も新しいものから最も古いものに自動的に並び替えられ、会話内の最初のクエリに基づいて名前が付けられます。
Cosmos DB リソースを削除したが Studio でチャット履歴オプションを有効にしたままにしている場合、ユーザーは接続エラーの通知を受け取りますが、チャット履歴にアクセスしなくても引き続き Web アプリを使用できます。