アプリケーションの動作を簡単に確認 / Azure OpenAI リファレンスアーキテクチャ「企業内向けChatと社内文章検索」
この記事の内容
- Azure OpenAI を活用したリファレンスアーキテクチャのサンプルアプリを実際に動かして確認します
- 「企業内向けチャット」と「社内文書検索」の2つの機能を持つアプリの動作を紹介します
- 社内文書検索では、GPT が検索キーワードを生成しドキュメントを参照して回答する仕組みを解説します
- アプリの設定項目(モデル、Temperature、ドキュメント数など)とその影響についても触れます
アプリの全体構成
デプロイが完了すると、アプリの URL が表示され、ブラウザからアクセスできるようになります。
このサンプルアプリには、大きく2つの機能があります。
- 企業内向けチャット — チャット UI でのフリーな会話
- 社内文書検索 — 社内ドキュメントを参照した上での回答と引用元の表示
それぞれ画面が分かれており、用途に応じて使い分けられる構成になっています。
企業内向けチャット
企業内向けチャットは、ChatGPT に近い使い勝手のインターフェースになっています。試しに「GPTについて教えてください」と質問すると、回答が生成されます。
裏側で使用しているモデルは GPT-3.5 Turbo ですが、設定を変更することで GPT-4 を使うことも可能です。クローズドな企業内環境で LLM を活用したい場合のサンプルとして、このままでも十分実用的な品質になっています。
社内文書検索
社内文書検索は、単純なチャットと異なり、社内ドキュメントを参照した上で回答を生成する機能です。回答と合わせて引用元のドキュメントも表示されます。
サンプルデータ
このサンプルでは、厚生労働省のモデル就業規則を使用しています。そのため、休暇の種類や人事に関する質問がサンプルクエリとして用意されています。
動作の流れ
「休暇にはどんな種類がありますか?」と質問した場合、以下の流れで回答が生成されます。
- 入力されたクエリをもとに、GPT が適切な検索キーワードを考えます(例:「休暇 種類」)
- そのキーワードで Cognitive Search(Azure AI Search) を実行します
- 検索でヒットしたドキュメントの該当部分を GPT への入力として与えます
- GPT がその情報をもとに回答を生成し、引用元とともに表示します
この思考プロセスがアプリ上で可視化されており、どのキーワードで検索し、どのドキュメントを参照したかを確認できます。
GPT に与えているプロンプト
GPT への指示プロンプトは英語で記述されています。これはトークン数の節約と性能向上のためです。プロンプトの内容(DeepL 等で翻訳すると)は、おおよそ以下のような指示が含まれています。
- 出典の言語と同じ言語で回答すること
- 提供された情報リストに記載されている事実のみを答えること
- わからない場合は「わからない」と答えること
- 回答のタイトルには必ずソース名を含めること
この指示があるため、回答に引用元が表示される仕組みになっています。
引用元の表示
GPT のモデル自体はアップロードされたドキュメントの中身を知りません。検索結果として抽出されたドキュメントの該当部分をやり取りの中で GPT に渡すことで、回答の根拠として使われます。
アプリ側では、引用元の表記をリンク形式に変換し、クリックするとドキュメントの該当ページが確認できるようになっています。
設定項目と挙動の変化
アプリの設定画面では、以下の項目を変更できます。
| 設定項目 | 概要 |
|---|---|
| GPT モデル | 使用するモデルを変更(GPT-3.5 Turbo、GPT-4 等) |
| Temperature | 回答のばらつき(創造性)を調整 |
| 取得ドキュメント数 | 検索で参照するドキュメント数を変更 |
| 除外するカテゴリー | 検索対象から除外するカテゴリーを指定 |
| セマンティックランカーの使用 | より意味的に近いドキュメントを優先する機能の有無 |
| ドキュメントの使用範囲 | ドキュメント全文か、クエリに合ったサマリーのみかを選択 |
設定変更時の注意点
ドキュメントの使用範囲を「全文」に設定し、取得ドキュメント数を多くすると、GPT に送信するトークン数が上限を超えてエラーになるケースがありました。実際にデモ中もこの問題が発生し、取得ドキュメント数を 3 程度に絞ることで解消できました。
また、モデルの指定はデプロイ済みのモデルと一致している必要があります。未デプロイのモデルを指定するとエラーになります。
Temperature を変更すると回答のばらつきが変わります。同じ質問でも若干異なる回答が生成されることが確認できます。
まとめ
今回は、日本マイクロソフトのエンジニアが作成した Azure OpenAI のリファレンスアーキテクチャ「企業内向けChatと社内文章検索」のサンプルアプリを実際に動かして確認しました。
チャット機能はそのまま企業内で活用できるレベルの品質であり、社内文書検索では GPT が検索キーワードの生成から回答・引用元表示まで一貫して行う仕組みを確認できました。設定画面も充実しており、モデルや Temperature、ドキュメントの参照方法を柔軟に変更できます。
次の動画では、アプリの内部実装についてさらに深掘りしていく予定です。