チュートリアル: データにチャット用の Web アプリをデプロイする

Note

Azure AI Studio は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

この記事では、Azure OpenAI Service モデルで独自のデータを使用するチャット Web アプリをデプロイします。

ローカル データファイルを Azure BLOB ストレージにアップロードし、Azure AI Search インデックスを作成します。 データ ソースは、モデルを特定のデータで根拠付けるために使用されます。 根拠付けとは、質問のコンテキストを理解するために、モデルでデータを使用することを意味します。 デプロイされたモデルそのものを変えるわけではありません。 データは、Azure サブスクリプションに個別に安全に保存されます。 詳細については、「独自のデータに基づく Azure OpenAI」を参照してください。

このチュートリアルの手順は、次のとおりです。

  1. データなしでチャット モデルをデプロイしてテストする
  2. データの追加
  3. データを使用してモデルをテストする
  4. Web アプリのデプロイ

前提条件

  • Azure サブスクリプション。無料で作成できます

  • 目的の Azure サブスクリプション内の Azure OpenAI に付与されたアクセス権。

    現時点では、このサービスへのアクセスは申請によってのみ許可されます。 Azure OpenAI へのアクセスを申請するには、https://aka.ms/oai/access のフォームに入力してください。 問題がある場合は、このリポジトリで問題をオープンしてお問い合わせください。

  • Azure AI Studio での Azure AI ハブ リソースプロジェクト

  • アップロードするには、データ例を含むファイルが少なくとも 1 つ必要です。 このチュートリアルを完了するには、GitHub 上の Azure/aistudio-copilot-sample リポジトリにある製品情報サンプルを使用します。 具体的には、product_info_11.md には、このチュートリアルの例に関連する TrailWalker ハイキング シューズの製品情報が含まれます。 ファイルをダウンロードするか、その内容をローカル コンピューター上の product_info_11.md という名前のファイルにコピーできます。

データなしでチャット モデルをデプロイしてテストする

以下の手順に従って、チャット モデルをデプロイし、データなしでテストしてください。

  1. Azure AI Studio にサインインします。

  2. ご自分のプロジェクトに移動するか、Azure AI Studio で新しいプロジェクトを作成します。

  3. 上部のメニューから [ビルド] を選択し、[デプロイ]>[作成]>[リアルタイム エンドポイント] を選択します。

    デプロイのない [デプロイ] ページのスクリーンショット。

  4. [モデルの選択] ページで、[モデル] ドロップダウンからデプロイするモデルを選択します。 たとえば、gpt-35-turbo-16k を選択します。 次に、[確認] を選択します。

    [モデルの選択] ページのスクリーンショット。

  5. [モデルのデプロイ] ページで、デプロイの名前を入力し、[デプロイ] を選択します。 デプロイが作成されると、デプロイの詳細ページが表示されます。 詳細には、デプロイを作成した日付、デプロイしたモデルの作成日とバージョンが含まれます。

  6. 前の手順のデプロイの詳細ページで、[プレイグラウンドで開く] を選択します。

    GPT チャット展開の詳細のスクリーンショット。

  7. プレイグラウンドで、[モード] ドロップダウンから[チャット] が選択されていることを確認します。 [デプロイメント] ドロップダウンから、デプロイされた GPT チャット モデルを選択します。

    チャット モードとモデルが選択されているチャット プレイグラウンドのスクリーンショット。

  8. [アシスタントのセットアップ] ペインの [システム メッセージ] テキスト ボックスに、アシスタントをガイドする次のプロンプトを入力します: "あなたは、情報の検索を支援する AI アシスタントです。"シナリオに合わせてプロンプトを調整できます。

  9. [変更を適用する] を選択して変更を保存し、システム メッセージを更新するかどうかを確認するプロンプトが表示されたら、[続行] を選択します。

  10. チャット セッション ペインで、次の質問を入力します: "TrailWalker ハイキング シューズはいくらですか"。その後、右矢印アイコンを選択して送信します。

    グラウンディング データなしの最初のチャットの質問のスクリーンショット。

  11. アシスタントは "わかりません" と回答します。 このようになるのは、モデルは TrailWalker ハイキング シューズの製品情報にアクセスできないためです。

    グラウンディング データなしのアシスタントの応答のスクリーンショット。

次のセクションでは、製品に関する質問に答えられるように、モデルにデータを追加します。

データの追加

以下の手順に従って、データをプレイグラウンドに追加し、アシスタントが製品に関する質問に答えられるようにします。 デプロイされたモデルそのものを変えるわけではありません。 データは、Azure サブスクリプションに個別に安全に保存されます。

  1. まだプレイグラウンドにアクセスしていない場合は、上部のメニューから [ビルド] を選択し、折りたたみ可能な左側のメニューから [プレイグラウンド] を選択します。

  2. [アシスタントのセットアップ] ペインで、[Add your data (preview)] (データの追加 (プレビュー))>[+ Add a data source] (+ データ ソースの追加) の順に選択します。

    データ ソースを追加するオプションが表示されているチャット プレイグラウンドのスクリーンショット。

  3. 表示された [データ ソースの選択または追加] ページで、[データ ソースの選択] ドロップダウンから [ファイルをアップロードする] を選択します。

    データ ソースを選択するオプションのスクリーンショット。

    ヒント

    データ ソース オプションとサポートされるファイルの種類と形式については、「独自のデータに基づく Azure OpenAI」を参照してください。

  4. 次のデータ ソースの詳細を入力します。

    ファイルのアップロードに必要なリソースと情報のスクリーンショット。

    Note

    Azure OpenAI では、データにアクセスしてインデックスを付けるために、ストレージ リソースと検索リソースの両方が必要です。 データは、Azure サブスクリプションに安全に保存されます。

    • [サブスクリプション]: 使用する Azure OpenAI リソースを含む Azure サブスクリプションを選択します。
    • ストレージ リソース: ファイルをアップロードする Azure BLOB ストレージ リソースを選択します。
    • データ ソース: 根拠付けるデータを構築するソースとして、既存の Azure AI Search インデックス、Azure Storage コンテナー、ローカル ファイルのアップロードを選択します。 データは、Azure サブスクリプションに安全に保存されます。
    • インデックス名: 根拠付けに使用するインデックスが作成される Azure AI Search リソースを選択します。 データ インジェストが完了すると、指定された名前の新しい検索インデックスが生成されます。
  5. ご自分の Azure AI Search リソースを選択し、接続するとアカウントで使用量が発生することの確認を選択します。 [次へ] を選択します。

  6. [ファイルのアップロード] ウィンドウで、[Browse for a file] (ファイルの参照) を選択し、アップロードするファイルを選択します。 前にダウンロードまたは作成した product_info_11.md ファイルを選択します。 「前提条件」を参照してください。 複数のファイルをアップロードする場合は、今すぐ実行してください。 同じプレイグラウンド セッションで、後からファイルを追加することはできません。

  7. [アップロード] を選択して、Azure BLOB ストレージ アカウントにファイルをアップロードします。 [次へ] を選択します。

    ファイルを選択してアップロードするダイアログのスクリーンショット。

  8. [データ管理] ペインの [検索の種類] で、[キーワード] を選択します。 この設定は、モデルがどのように要求に応答するかを決定するのに役立ちます。 [次へ] を選択します。

    Note

    [データ ソースの選択または追加] ページでベクトル検索を追加していた場合、追加コストでより多くのオプションをここで利用できるようになります。 詳細については、「独自のデータに基づく Azure OpenAI」を参照してください。

  9. 入力した詳細を確認し、[保存して閉じる] を選択します。 これでモデルとチャットできるようになり、データからの情報を使用して応答が作成されます。

    データを追加するための [レビューと完了] ページのスクリーンショット。

  10. [アシスタントのセットアップ] ペインで、データ インジェストが進行中であることを確認できます。 先に進む前に、状態の代わりにデータ ソースとインデックス名が表示されるまで待機します。

    ビュー内のデータ インジェストの状態を示すチャット プレイグラウンドのスクリーンショット。

  11. これで、モデルとチャットして前と同じ質問 ("TrailWalker のハイキング シューズはいくらですか") をすることができ、今回はご利用のデータからの情報を使って回答が作成されます。 参照ボタンを展開すると、使用されたデータを確認できます。

    グラウンディング データを含むアシスタントの応答のスクリーンショット。

Web アプリのデプロイ

Azure AI Studio での体験に満足したら、モデルをスタンドアロンの Web アプリケーションとしてデプロイできます。

Azure portal でお使いのリソース グループを検索する

このチュートリアルでは、Web アプリを Azure AI ハブ リソースと同じリソースグループにデプロイします。 後で、Azure portal で Web アプリの認証を構成します。

以下の手順に従って、Azure AI Studio から Azure portal の次のリソース グループに移動します。

  1. Azure AI Studio の上部のメニューから [管理] を選択し、[詳細] を選択します。 複数の Azure AI ハブ リソースがある場合は、使うリソースを選んで詳細を表示します。

  2. [リソース構成] ペインで、リソース グループ名を選択し、Azure portal でリソース グループを開きます。 この例では、リソース グループの名前は rg-docsazureairesource です。

    Azure AI Studio のリソース グループのスクリーンショット。

  3. これで、Azure portal に、Azure AI ハブ リソースをデプロイしたリソース グループのコンテンツが表示されるはずです。

    Azure portal のリソース グループのスクリーンショット。

    このページはブラウザー タブで開いたままにしておいてください。後で戻ってきます。

Web アプリのデプロイ

発行すると、ご自分のサブスクリプションに Azure App Service が作成されます。 選択した価格プランによっては、コストが発生する場合があります。 アプリの使用が終了したら、Azure portal から削除できます。

Web アプリをデプロイするには、次のようにします。

  1. 前のセクションの手順を完了し、プレイグラウンドにデータを追加します

    Note

    独自のデータを使用しても使用しなくても Web アプリをデプロイできますが、少なくとも「データなしでチャット モデルをデプロイしてテストする」で説明したように、デプロイされたモデルが必要です。

  2. [デプロイ]>[新しい Web アプリ] を選択します。

    新しい Web アプリをデプロイするボタンのスクリーンショット。

  3. [Web アプリにデプロイ] ページで、次の詳細を指定します。

    • 名前: Web アプリの一意の名前。
    • サブスクリプション:Azure サブスクリプション。
    • [リソース グループ]: Web アプリをデプロイするリソース グループを選びます。 Azure AI ハブ リソースと同じリソース グループを使用できます。
    • 場所: Web アプリをデプロイする場所を選択します。 Azure AI ハブ リソースと同じ場所を使用できます。
    • 料金プラン: Web アプリの料金プランを選択します。
    • Web アプリでチャット履歴を有効にする: チュートリアルでは、[チャット履歴] ボックスが選択されていません。 この機能を有効にすると、ユーザーは以前の個々のクエリと応答にアクセスできます。 詳細については、「チャット履歴の解説」を参照してください。
    • Web アプリが私のアカウントに使用されることに同意します: 選択済み
  4. アプリがデプロイされるのを待ちます (数分かかる場合があります)。

    Web アプリのデプロイが進行中であるという通知が表示されているプレイグラウンドのスクリーンショット。

  5. 準備ができたら、ツールバーの [起動] ボタンが有効になります。 ただし、まだアプリを起動せず、[プレイグラウンド] ページも閉じないでください。後で戻ってきます。

Web アプリ認証の構成

既定では、Web アプリにはユーザーのみがアクセスできます。 このチュートリアルでは、認証を追加してアプリへのアクセスを Azure テナントのメンバーに制限します。 ユーザーは自分の Microsoft Entra アカウントでサインインして、アプリにアクセスできます。 必要に応じて、同様のプロセスに従って別の ID プロバイダーを追加できます。 アプリでは、ユーザーのサインイン情報は、ユーザーがテナントのメンバーであることを確認する以外の用途では使用されません。

  1. Azure portal を含むブラウザー タブに戻り (または新しいブラウザー タブで Azure portal をもう一度開き)、Azure AI ハブ リソースと Web アプリをデプロイしたリソース グループの内容を表示します (Web アプリを表示するには、表示を更新することが必要になる場合があります)。

  2. リソース グループのリソースの一覧で、App Service リソースを選択します。

  3. [設定] の下にある折りたたみ可能な左メニューから、[認証] を選択します。

    Azure portal の [Web アプリ] の [設定] の下にある [認証] メニュー項目のスクリーンショット。

  4. 次の設定を使用して ID プロバイダーを追加します。

    • ID プロバイダー: ID プロバイダーとして Microsoft を選択します。 このページの既定の設定では、アプリはテナントのみに制限されるため、ここで他の設定を変更する必要はありません。
    • テナントの種類: ワークフォース
    • アプリ登録: 新しいアプリ登録を作成する
    • 名前: Web アプリ サービスの名前
    • サポートされているアカウントの種類: 現在のテナント - 単一テナント
    • アクセスの制限: 認証が必要
    • 認証されていない要求: HTTP 302 リダイレクトが見つかりました - Web サイトに推奨

Web アプリを使用する

もう少しです。 これで Web アプリをテストできます。

  1. 認証設定が有効になるまで 10 分ほどお待ちください。

  2. Azure AI Studio の [プレイグラウンド] ページを含むブラウザー タブに戻ります。

  3. [起動] を選択して、デプロイされた Web アプリを起動します。 プロンプトが表示されたら、アクセス許可要求に同意してください。

    認証設定がまだ有効になっていない場合は、Web アプリのブラウザー タブを閉じて、Azure AI Studio の [プレイグラウンド] ページに戻ります。 その後もう少しお待ちいただき、もう一度お試しください。

  4. Web アプリで、前と同じ質問 ("TrailWalker のハイキング シューズはいくらですか") をすることができ、今回はご利用のデータからの情報を使って回答が作成されます。 参照ボタンを展開すると、使用されたデータを確認できます。

    デプロイ済みの Web アプリを使用したチャット エクスペリエンスのスクリーンショット。

リソースをクリーンアップする

不要な Azure コストが発生しないように、このクイックスタートで作成したリソースが不要になったら削除してください。 リソースを管理するために、Azure portal を使用できます。

解説

チャット履歴

チャット履歴機能を使用することで、ユーザーは以前の個々のクエリと応答にアクセスできます。

Web アプリをデプロイすると、チャット履歴を有効にすることができます。 [Web アプリでチャット履歴を有効にする] チェック ボックスをオンにします。

Web アプリをデプロイ中にチャット履歴を有効にするオプションのスクリーンショット。

重要

チャット履歴を有効にすると、リソース グループに Cosmos DB インスタンスが作成され、使用されるストレージに対して追加料金が発生します。 Web アプリを削除しても、Cosmos DB インスタンスは自動的に削除されません。 保存されているすべてのチャットと共に Cosmos DB インスタンスを削除するには、Azure portal 内の関連付けられたリソースに移動して削除する必要があります。

チャット履歴を有効にしたら、ユーザーはこれをアプリの右上隅で表示または非表示にすることができます。 履歴が表示されると、会話の名前の変更や削除を行うことができます。 アプリにログインすると、会話が最も新しいものから最も古いものに自動的に並び替えられ、会話内の最初のクエリに基づいて名前が付けられます。

Cosmos DB リソースを削除したが Studio でチャット履歴オプションを有効にしたままにしている場合、ユーザーは接続エラーの通知を受け取りますが、チャット履歴にアクセスしなくても引き続き Web アプリを使用できます。

次のステップ