注
このドキュメントでは、 Microsoft Foundry (クラシック) ポータルを参照します。
🔍 新しいポータルの詳細については、Microsoft Foundry (新しい) ドキュメント を参照してください。
この記事では、Microsoft Foundry ポータルで大規模な言語モデルでデータを使用するエンタープライズ チャット Web アプリをデプロイします。
データ ソースは、特定のデータを典拠としてモデルを支えます。 典拠とは、モデルがデータを使用して質問のコンテキストを理解することを意味します。 デプロイされたモデル自体は変更されません。 データは元のデータ ソース内に保持され、分離され安全に保護されます。
このチュートリアルの手順は、次のとおりです。
- リソースを構成します。
- データを追加します。
- データを使用してモデルをテストします。
- Web アプリをデプロイします。
[前提条件]
Important
この記事では、ハブ ベースのプロジェクトのレガシ サポートを提供します。 Foundry プロジェクトでは機能しません。 参照してください どのタイプのプロジェクトを自分が持っているかを知るにはどうすればよいですか?
SDK の互換性に関する注意: コード例には、特定の Microsoft Foundry SDK バージョンが必要です。 互換性の問題が発生した場合は、ハブ ベースから Foundry projectへのアクセスを検討してください。
- アクティブなサブスクリプションを持つAzure アカウント。 お持ちでない場合は、無料試用版サブスクリプションを含む無料Azure アカウントを作成します。
- 持っていない場合は、ハブベースのプロジェクトを作成します。
デプロイされた Azure OpenAI チャット モデル。 このリソースがない場合は、Foundry プレイグラウンドのクイックスタートを完了してこのリソースを作成します。
サンプル製品データのインデックスを作成するためのSearch service接続。 1つお持ちでない場合は、検索サービスを作成し、接続する手順に従ってください。
製品データのローカル コピー。 GitHubAzure-Samples/rag-data-openai-python-promptflow リポジトリには>このチュートリアル シナリオのサンプル小売製品情報があります。
product_info_11.mdファイルには、このチュートリアルの例の TrailWalker ハイキング シューズの製品情報が含まれています。 サンプル Contoso Trek の製品データを ZIP ファイルにローカル コンピューターにダウンロードします。Web アプリにデプロイできるように、選択したサブスクリプションに登録されている Microsoft.Web リソース プロバイダー。 リソース プロバイダーの登録の詳細については、「Register リソース プロバイダーを参照してください。
Azure サブスクリプションにロールの割り当てを追加するために必要なアクセス許可。 ロールの割り当てによってアクセス許可を付与できるのは、特定のAzure リソースの所有者だけです。
Foundry ポータルとAzure portal
このチュートリアルでは、Foundry ポータルでいくつかのタスクを実行し、一部のタスクをAzure portalで実行します。
Foundry ポータルは、AI モデルを構築、トレーニング、デプロイするための Web ベースの環境です。 開発者は、ここでチャット Web アプリケーションを構築およびデプロイします。
Azure portalを使用すると、管理者はAzureリソースを管理および監視できます。 管理者は、ポータルを使用して、Web アプリからのaccessに必要なさまざまなAzure サービスの設定を設定します。
リソースの構成
Important
Azure サブスクリプションにロールの割り当てを追加するために必要なアクセス許可が必要です。 ロールの割り当てによるアクセス許可の付与は、特定のAzure リソースの所有者のみが許可します。 このセクションを完了するには、Azure サブスクリプション所有者 (IT 管理者である可能性があります) に依頼する必要がある場合があります。
Web アプリでリソースを正しく動作させるには、Azure portalで適切なアクセス許可を設定します。
まず、Foundry ポータルで設定する必要があるリソースを特定します。
Foundry ポータルを開き、Azure OpenAI チャット モデルのデプロイに使用したハブベースのprojectを選択します。
左側のペインから [管理センター] を選択します。
projectで Connected resources を選択します。
構成する必要がある 3 つのリソース (
Azure OpenAI 、Azure AI Search 、およびworkspaceblobstore に対応する Azure Blob storage を特定します。
ヒント
テーブルに [種類] が表示されない場合は、右上隅にある [列] を選択し、[ 選択した列] に追加または並べ替えます。 複数の Azure OpenAI リソースがある場合は、デプロイされたチャット モデルを含むリソースを使用します。
これらの各名前を Azure portal で検索します。 それぞれを新しいブラウザー タブで開き、切り替えられるようにします。
完了すると、Search service、Foundry、blobstore Container の 3 つの新しいブラウザー タブが開きます。 リソースを設定する際にこれらのタブを切り替えるので、3 つのタブはすべて開いたままにしておきます。
マネージド ID の有効化
Azure portalの Search service リソースのブラウザー タブで、マネージド ID を有効にします。
- 左側のウィンドウの [設定] で 、[ ID] を選択します。
- [ステータス] を [オン] に切り替えます。
- 保存を選びます。
Azure portalの Foundry リソースのブラウザー タブで、マネージド ID を有効にします。
- 左側のペインの [リソース管理] で、[ID] を選択します。
- [ステータス] を [オン] に切り替えます。
- 保存を選びます。
検索のアクセス制御を設定する
Azure portalの Search service リソースのブラウザー タブで、API access ポリシーを設定します。
- 左側のペインの [設定] で、[キー] を選択します。
- [API Access control で、Both を選択します。
- メッセージが表示されたら、[はい] を選択して確定します。
ロールを割り当てる
以下の手順で、リソースごとにこのパターンを繰り返します。
リソースにロールベースのaccess control (RBAC) を割り当てる一般的なパターンは次のとおりです。
- 特定のリソースのAzure portalに移動します。
- Azure portalの左側のページで、Access control (IAM) を選択します。
- [+ 追加]>[ロール割り当ての追加] の順に選択します。
- 割り当てる必要があるロールを検索して選択します。 その後、次へ を選択します。
- 自分にロールを割り当てる場合:
- ユーザー、グループ、またはサービス プリンシパル を選択します。
- [メンバーの選択] を選びます。
- 自分の名前を検索して選択します。
- 別のリソースにロールを割り当てる場合:
- [ マネージド ID] を選択します。
- [メンバーの選択] を選びます。
- ドロップダウンを使用して、割り当てるリソースの種類を見つけます。 たとえば、Foundry Tools や Search service などです。
- 表示される一覧からリソースを選択します。 1 つしかない場合もありますが、それを選択する必要があります。
- ウィザードを続行し、[確認と割り当て] を選択してロールの割り当てを追加します。
このチュートリアルで設定したリソースにロールを割り当てるには、次の手順に従います。
Azure portalの Search service のブラウザー タブで、次のロールを割り当てます。
- 検索用インデックスデータリーダー を Foundry マネージド ID に
- Search Service 共同作成者Foundry マネージド ID
- 共同作成者を自分に割り当てます (共同作成者を見つけるには、上部にある [特権管理者ロール] タブに切り替えます。その他のロールはすべて、[職務権限ロール] タブにあります。)
Azure portalの Foundry のブラウザー タブでこれらのロールを割り当てます。
- Cognitive Services OpenAI Contributor に対する Search service マネージド アイデンティティ
- 共同作成者を自分に割り当てます。
Azure portalの Azure Blob storage のブラウザー タブでこれらのロールを割り当てます。
- Storage Blob Data ContributorをFoundryマネージド IDへのアクセス許可
- Storage Blob Data Reader を Search service のマネージド ID に対して
- 共同作成者を自分に割り当てます
リソースの設定が完了しました。 必要に応じて、Azure portalブラウザーのタブを閉じることもできます。
データを追加してチャット モデルをもう一度試す
Foundry プレイグラウンドのクイックスタート (このチュートリアルの前提条件です) では、データなしでモデルがどのように応答するかを確認できます。 モデルにデータを追加して、製品に関する質問に答えられるようにします。
このセクションを完了するには、製品データのローカル コピーが必要です。 GitHub の product_info_11.md ファイルにはこのチュートリアルの例に関連する TrailWalker ハイキング シューズの製品情報が含まれます。
サンプル Contoso Trek の製品データを ZIP ファイルにローカル コンピューターにダウンロードします。
以下の手順に従って、データをチャット プレイグラウンドに追加し、アシスタントが製品に関する質問に答えられるようにします。 デプロイされたモデルそのものを変えるわけではありません。 データは、Azure サブスクリプションに個別かつ安全に保存されます。
Microsoft Foundry のprojectに移動します。
左側のウィンドウから [プレイグラウンド ] を選択します。
[チャット プレイグラウンドを試す] を選択します。
[デプロイメント] ドロップダウンから、デプロイされたチャット モデルを選択します。
チャット プレイグラウンドの左側で、[データの追加]>[+ 新しいデータ ソースの追加] を選択します。
[データ ソース] ドロップダウンで、[ファイルのアップロード] を選択します。
[アップロード]>[ファイルのアップロード] を選択し、ローカル ファイルを参照します。
アップロードするファイルを選択します。 ダウンロード以前に作成した製品情報ファイルを選択します。 すべてのファイルを今すぐ追加します。 同じプレイグラウンド セッションで、後からファイルを追加することはできません。
Upload を選択して、Azure Blob storage アカウントにファイルをアップロードします。 その後、次へ を選択します。
Azure AI Search サービスを選択します。
[ベクトル インデックス名] に「product-info」と入力して [次へ] を選択します。
[検索設定] ページの [ベクトル設定] で、[この検索リソースにベクトル検索を追加] チェック ボックスをオフにします。 この設定は、モデルがどのように要求に応答するかを決定するのに役立ちます。 その後、次へ を選択します。
注
ベクトル検索を追加する場合、ここで追加コストのためにさらに多くのオプションを使用できます。
設定を確認して [ベクトル インデックスの作成] を選択します。
プレイグラウンドで、データ インジェストが進行中であることを確認できます。 この処理には数分かかる場合があります。 先に進む前に、状態の代わりにデータ ソースとインデックス名が表示されるまで待機します。
これで、モデルとチャットして前と同じ質問 ("TrailWalker のハイキング シューズはいくらですか") をすることができ、今回はご利用のデータからの情報を使って回答が作成されます。 参照ボタンを展開すると、使用されたデータを確認できます。
Web アプリのデプロイ
Foundry ポータルでのエクスペリエンスに満足したら、モデルをスタンドアロン Web アプリケーションとしてデプロイします。
Azure portalでリソース グループを見つける
このチュートリアルでは、 Foundry ハブと同じリソース グループに Web アプリをデプロイします。 Azure portalで Web アプリの認証を設定します。
次の手順に従って、Azure portalのリソース グループに移動します。
Foundryのプロジェクトにアクセスします。 左側のペインから [管理センター] を選択します。
Project見出しで、Overview を選択します。
リソース グループ名を選択して、Azure portalでリソース グループを開きます。 この例では、リソース グループの名前は
rg-sdg-aiです。これでAzure portalになり、ハブをデプロイしたリソース グループの内容が表示されます。 リソース グループの名前と場所をメモします。 この情報は、次のセクションで使用します。
このページはブラウザー タブで開いたままにしておいてください。後で戻ってきます。
Web アプリのデプロイ
発行すると、サブスクリプションにAzure App Serviceが作成されます。 選択した計画によっては、コストが発生する場合があります。 アプリを使い終わったら、Azure portalから削除します。
Web アプリをデプロイするには、次のようにします。
Important
Web アプリにデプロイする前にMicrosoft.Web をリソース プロバイダーとして登録します。
前のセクションの手順を完了し、プレイグラウンドにデータを追加します。 独自のデータの有無にかかわらず Web アプリをデプロイできますが、 Foundry プレイグラウンドのクイックスタートで説明されているように、デプロイされたモデルが必要です。
[デプロイ] > [...Web アプリとして] を選択します。
[Web アプリにデプロイ] ページで、次の詳細を指定します。
- 名前: Web アプリの一意の名前。
- Subscription: Azure サブスクリプション。 使用可能なサブスクリプションが表示されない場合は、最初にリソース プロバイダーとして register Microsoft.Web。
- [リソース グループ]: Web アプリをデプロイするリソース グループを選びます。 ハブと同じリソース グループを使用します。
- 場所: Web アプリをデプロイする場所を選択します。 ハブと同じ場所を使用します。
- 料金プラン: Web アプリの料金プランを選択します。
- Web アプリでチャット履歴を有効にする: チュートリアルでは、[チャット履歴] ボックスが選択されていません。 ユーザーが個々の過去のクエリと応答にアクセスできるように、この機能を有効にします。 詳細については、「チャット履歴の解説」を参照してください。
[デプロイ] を選択します。
アプリがデプロイされるまで待ちます。 このプロセスには数分かかる場合があります。
準備ができたら、ツールバーの [起動] ボタンが有効になります。 まだアプリを起動しないでください。チャット プレイグラウンド ページも閉じないでください。後で戻ってきます。
Web アプリ認証の構成
既定では、Web アプリをaccessできるのはユーザーだけです。 このチュートリアルでは、Azure テナントのメンバーにaccessを制限する認証を追加します。 ユーザーは Microsoft Entra アカウントでサインインし、アプリにアクセスします。 必要に応じて、同様のプロセスに従って別の ID プロバイダーを追加できます。 アプリでは、ユーザーのサインイン情報のみを使用して、ユーザーがテナントのメンバーであることを確認します。
Azure portalでブラウザー タブに戻るか、新しいブラウザー タブで Azure portal を開きます。Web アプリをデプロイしたリソース グループの内容を表示します。 Web アプリを表示するには、ビューの更新が必要になる場合があります。
リソース グループ内のリソースの一覧から App Service リソースを選択します。
[設定] の下にある折りたたみ可能な左メニューから、[認証] を選択します。
Azure ポータルの設定にある Web アプリ認証メニュー項目のスクリーンショット このページに Microsoft が ID プロバイダーとして表示されている場合は、これ以上何も必要ありません。 次の手順は省略できます。
次の設定を使用して ID プロバイダーを追加します。
- ID プロバイダー: ID プロバイダーとして Microsoft を選択します。 このページの既定の設定では、アプリはテナントのみに制限されるため、ここで他の設定を変更する必要はありません。
- テナントの種類: ワークフォース
- アプリ登録: 新しいアプリ登録を作成する
- ja-JP: Name: あなたのウェブアプリケーションサービスの名前
- サポートされているアカウントの種類: 現在のテナント - 単一テナント
- Restrict access: 認証が必要です
- 認証されていない要求: HTTP 302 リダイレクトが見つかりました - Web サイトに推奨
Web アプリを使用する
もう少しです。 これで Web アプリをテストできます。
設定を変更した場合は、認証設定が有効になるまで約 10 分待ちます。
Foundry ポータルのチャットプレイグラウンド ページが表示されたブラウザー タブに戻ります。
[起動] を選択して、デプロイされた Web アプリを開きます。 プロンプトが表示されたら、アクセス許可要求に同意してください。
プレイグラウンドに Launch が表示されない場合は、左側のウィンドウから Web apps を選択し、一覧からアプリを選択して開きます。
認証設定がまだアクティブでない場合は、Web アプリのブラウザー タブを閉じて、Foundry ポータルのチャットプレイグラウンドに戻ります。 もう少し待ってから、もう一度やり直してください。
Web アプリで、前と同じ質問をします ("TrailWalker ハイキング シューズの価格はいくらですか")。 今回は、アプリはデータからの情報を使用して応答を構築します。 [参照]ボタンを展開して、使用されているデータを表示します。
チャット履歴を理解する
チャット履歴機能を使用すると、ユーザーは以前のクエリと応答を確認できます。
Web アプリをデプロイするときにチャット履歴を有効にします。 [Web アプリでチャット履歴を有効にする] チェック ボックスをオンにします。
Important
チャット履歴を有効にすると、リソース グループに Cosmos DB インスタンスが作成され、使用されたstorageに対して追加料金が発生します。 Web アプリを削除しても、Cosmos DB インスタンスは自動的に削除されません。 Cosmos DB インスタンスと保存されているすべてのチャットを削除するには、Azure portal内の関連付けられているリソースに移動して削除します。
チャット履歴を有効にすると、ユーザーはアプリの右上隅でチャット履歴を表示または非表示にすることができます。 履歴が表示されたら、会話の名前を変更または削除できます。 アプリにサインインすると、会話は最新のものから最も古いものの順に並べられ、会話の最初のクエリに基づいて名前が付けられます。
Cosmos DB リソースを削除しても、スタジオでチャット履歴オプションを有効のままにすると、ユーザーに接続エラーが表示されますが、チャット履歴なしで Web アプリを引き続き使用できます。
Web アプリを更新する
プレイグラウンドを使用して、データを追加したり、さまざまなシナリオでモデルをテストしたりします。 新しいモデルで Web アプリを更新する準備ができたら、[デプロイ] > [...Web アプリとして] を選択します。 [既存の Web アプリを更新する] を選択し、一覧から既存の Web アプリを選択します。 新しいモデルが既存の Web アプリにデプロイされます。
リソースをクリーンアップする
不要なAzureコストを回避するには、このクイック スタートで作成したリソースが不要な場合は削除します。 Azure portalでリソースを管理します。
関連するコンテンツ
- チャット アプリの構築を始める
Azure AI SDK