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に保存されます。

CosmosDB

誰がどのような会話を行ったかのログを保持できるため、企業利用において監査やレビューが必要なケースに適した設定です。

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を使ったチャットボット構築を予定しています。より複雑なシナリオへの対応が可能になりますので、引き続きシリーズをご覧ください。