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