Azure OpenAI入門基礎講座 Part7 - Webアプリ展開
この記事の内容
- Azure OpenAI Studioで作成したチャットボットをWebアプリとして展開する方法を解説します
- デプロイ時にMicrosoft Entra ID(旧 Azure Active Directory)認証が自動的に有効化されます
- チャット履歴の保存にCosmos DBが利用されます
- コードを1行も書かずにエンタープライズ向けのチャットボットWebアプリが完成します
- 社内ヘルプデスクや業務マニュアル検索など、実際の企業利用にすぐ活用できるレベルのアプリケーションが構築可能です
はじめに
本記事はAzure OpenAI入門基礎講座の第7回です。今回からは実際のWebアプリケーション——チャットボットのWebアプリ——を作成していきます。業務で使えるレベルのアプリケーションが完成しますので、ぜひ一緒に進めていきましょう。
事前準備:チャットプレイグラウンドの設定
Webアプリへの展開を行う前に、チャットプレイグラウンド側の設定を確認しておきましょう。今回のデモでは以下のような設定が施されています。
システムメッセージ
パラメーター設定
- モデル:GPT-4
- 過去のメッセージ:10件を会話に含める
- 最大トークン数:増加(デフォルトより多め)
- 温度(Temperature):0.8程度(回答にバリエーションを持たせる設定)
また、ドキュメントデータの追加(Azure AI Search連携)も完了している状態です。チャットプレイグラウンド上で動作を確認した後、そのままWebアプリへの展開へ進みます。
WebアプリへのデプロイはAzure OpenAI Studioから
チャットプレイグラウンドには「配置先 → 新しいWebアプリ」というメニューがあります。ここからWebアプリへのデプロイを行います。
デプロイ先のWebアプリは「既存のWebアプリへ追加」と「新しいWebアプリの作成」を選択できます。今回は新規作成を行います。
Webアプリの作成手順
1. アプリ名とリソースの設定
Webアプリの名前を入力します(例:ebisuda-ebisu-web-bot)。名前は他のアプリと重複しなければ任意のものを使用できます。
続いて以下の項目を選択します。
- サブスクリプション:対象のサブスクリプションを選択
- リソースグループ:デプロイ先のリソースグループを選択
- 場所(リージョン):任意のリージョンを選択
- 価格プラン:FreeからStandardまで選択可能。今回はStandardを選択
2. チャット履歴の有効化
「Webアプリでチャット履歴を有効にする」というチェックボックスがあります。これを有効にすると、チャットの会話履歴がCosmos DBに保存されます。
誰がどのような会話を行ったかのログを保持できるため、企業利用において監査やレビューが必要なケースに適した設定です。
3. デプロイの実行
設定が完了したら「デプロイ」をクリックします。デプロイ完了までには数分かかります。通知エリアに「Webアプリのデプロイ中」と表示されますので、しばらく待ちましょう。
デプロイ後に作成されるリソース
デプロイが完了すると、リソースグループ内に以下のリソースが自動作成されます。
| リソース | 用途 |
|---|---|
| App Serviceプラン | Webアプリの実行基盤 |
| App Service(Webアプリ) | チャットボットアプリ本体 |
| Cosmos DB | チャット履歴の保存 |
既存のストレージアカウント(ドキュメント保存用)やAI Search(インデックス)はそのまま利用されます。
Entra ID認証が自動で有効化される
このデプロイの大きな特徴として、Microsoft Entra ID(旧Azure Active Directory)による認証が自動的に有効化される点が挙げられます。
Webアプリへの初回アクセス時には、以下のような同意画面が表示されます。
- アカウントへのサインイン
- プロファイルの読み取り
「組織の代理として同意する」にチェックを入れて承諾することで、管理者が組織全体に対してまとめて同意を付与できます。
この仕組みにより、以下のようなエンタープライズ向けのセキュリティ要件を満たすことができます。
- 多要素認証(MFA)の強制
- デバイスコンプライアンスポリシーの適用
- 条件付きアクセスによるアクセス制御
組織のポリシーに準拠した安全なアクセス管理が、追加の設定なしに実現できます。
Webアプリの動作確認
デプロイ完了後、「Webアプリを起動」をクリックするとブラウザでアプリが開きます。
チャットの基本動作
「Start a Chat」からチャットを開始できます。チャットプレイグラウンドと同様の動作が確認できます。
質問例:
回答例(一部):
回答はストリーミング形式で表示され、一気に出力されるのではなく少しずつ表示されるため、体感的な応答速度が向上しています。また、回答の末尾には参照元のドキュメント(リファレンス)も表示されます。
会話履歴の継続
過去のメッセージが会話コンテキストに含まれているため、前の発言を踏まえた質問が可能です。
例:
主語なしの質問に対しても、過去の会話コンテキストから「恵比寿正彦」について質問していることを認識し、適切に回答します。
チャット履歴の管理
「Chat History」から過去の会話履歴を確認できます。新しい会話を開始すると、コンテキストがリセットされた状態でチャットが始まります。過去の会話に戻ることも可能です。
企業利用のユースケース
今回のWebアプリはノーコードで構築されており、以下のような社内活用がそのまま実現可能です。
- 社内システムマニュアルの検索:マニュアルドキュメントを読み込ませて、システムに関する質問に自動回答
- 人事規定への回答:人事規定や就業規則をデータとして登録し、従業員からの問い合わせに対応
- 社内ヘルプデスク:各種業務手順書をインデックス化し、ヘルプデスク的なチャットボットとして運用
App Serviceへのデプロイ+Entra ID認証の組み合わせにより、インターネット経由でありながら組織のセキュリティポリシーに従ったアクセス制御が実現できます。
まとめ
今回はAzure OpenAI StudioのチャットプレイグラウンドからWebアプリへの展開手順を解説しました。
- チャットプレイグラウンドの「新しいWebアプリ」メニューからデプロイ可能
- コードを1行も書かずに、Entra ID認証付きのチャットボットWebアプリが完成する
- チャット履歴の有効化により、Cosmos DBへの会話ログ保存が自動設定される
- App Serviceプラン・App Service・Cosmos DBが自動的に作成される
- エンタープライズ利用を想定した認証・セキュリティの基盤がデフォルトで備わっている
次回はCopilot Studioを使ったチャットボット構築を予定しています。より複雑なシナリオへの対応が可能になりますので、引き続きシリーズをご覧ください。