Skip to content

Latest commit

 

History

History

5.internal-document-search

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Chat+社内文書検索

概要

このデモは、ChatGPTライクなインターフェースを使用して企業の社内文書を検索するアプリケーションの実装パターンです。デモアプリを利用するためには、Azure Open AI の ChatGPT(gpt-35-turbi)モデルと、Azure Cognitive Search、他にいくつかのリソースの作成が必要です。

このリポジトリでは、サンプルデータに厚生労働省のモデル就業規則を使用しています。

デモアプリは以下のように動作します。

Architecture

RAG Architecture

UI

Chat screen

セットアップガイド

重要: このサンプルをデプロイするには、Azure Open AIサービスが有効になっているサブスクリプションが必要です。Azure Open AIサービスへのアクセス申請はこちらから行ってください。

事前準備

クラウド実行環境

このデモをデプロイすると以下のリソースがAzureサブスクリプション上に作成されます。

サービス名 SKU Note
Azure App Service B1
Azure OpenAI Service S0 text-davinchi-003,gpt-3.5-turbo
Azure Cognitive Search S0
Azure Cosmos DB プロビジョニング済みスループット
Azure Form Recgonizer S0
Azure Blob Storage 汎用v2 ZRS

ローカル開発環境

このデモをデプロイするためには、ローカルに以下の開発環境が必要です。

重要 このサンプルはWindowsもしくはLinux環境で動作します。ただし、WSL2の環境では正常に動作しません。

  • Azure Developer CLI
  • Python 3+
    • 重要: Windows環境では、pythonおよびpipをPath環境変数に含める必要があります。
    • 重要: python --version で現在インストールされているPythonのバージョンを確認することができます。 Ubuntuを使用している場合、sudo apt install python-is-python3pythonpython3をリンクさせることができます。
  • Node.js
  • Git
  • Powershell 7+ (pwsh) - Windowsで実行する場合のみ
    • 重要: pwsh.exe がPowerShellコマンドとして実行できることを確認して下さい。

注意: 実行するユーザのAADアカウントは、Microsoft.Authorization/roleAssignments/write 権限を持っている必要があります。この権限は ユーザーアクセス管理者 もしくは 所有者が保持しています。

インストール

プロジェクトの初期化

  1. このリポジトリをクローンし、フォルダをターミナルで開きます。
  2. azd auth loginを実行します。
  3. azd initを実行します。
    • 現在、このサンプルは必要なAzure Open AIのモデルがデプロイ可能な米国東部もしくは米国中南部リージョンにデプロイ可能です。最新の情報はこちらを参考にしてください。

スクラッチでの開始

新規に環境をデプロイする場合は、以下のコマンドを実行してください。

  1. az ad user show --id your_account@your_tenant -o tsv --query id を実行して、操作をするユーザのAADアカウントのオブジェクトIDを取得します。
  2. 取得したオブジェクトIDを環境変数AZURE_PRINCIPAL_IDにセットします。
    • Windows環境で実行している場合は、set AZURE_PRINCIPAL_ID="Your Object ID"を実行します。
    • Linux環境で実行している場合は、export AZURE_PRINCIPAL_ID="Your Object ID"を実行します。
  3. azd up を実行します。- このコマンドを実行すると、Azure上に必要なリソースをデプロイし、アプリケーションのビルドとデプロイが実行されます。また、./data配下のPDFを利用してSearch Indexを作成します。
  4. コマンドの実行が終了すると、アプリケーションにアクセスする為のURLが表示されます。このURLをブラウザで開き、サンプルアプリケーションの利用を開始してください。

コマンド実行結果の例:

'Output from running azd up'

注意: アプリケーションのデプロイ完了には数分かかることがあります。"Python Developer"のウェルカムスクリーンが表示される場合は、数分待ってアクセスし直してください。

アプリケーションのローカル実行

アプリケーションをローカルで実行する場合には、以下のコマンドを実行してください。azd upで既にAzure上にリソースがデプロイされていることを前提にしています。

  1. azd loginを実行する。
  2. srcフォルダに移動する。
  3. ./start.ps1 もしくは ./start.sh を実行します。

GPT-4モデルの利用

2023年6月現在、GPT-4モデルは申請することで利用可能な状態です。このサンプルはGPT-4モデルのデプロイに対応していますが、GPT-4モデルを利用する場合には、こちらを参考に、GPT-4モデルをデプロイしてください。また、GPT-4モデルの利用申請はこちらのフォームから可能です。

GPT-4モデルのデプロイ後、以下の操作を実行してください。

  1. このサンプルをデプロイした際に、プロジェクトのディレクトリに./${環境名}/.envファイルが作成されています。このファイルを任意のエディタで開きます。
  2. 以下の行を探して、デプロイしたGPT-4モデルのデプロイ名を指定してください。

AZURE_OPENAI_GPT_4_DEPLOYMENT="" # GPT-4モデルのデプロイ名 AZURE_OPENAI_GPT_4_32K_DEPLOYMENT="" # GPT-4-32Kモデルのデプロイ名

  1. azd upを実行します。

GPT-4モデルは、チャット機能、文書検索機能のオプションで利用することができます。

Easy Authの設定(オプション)

必要に応じて、Azure ADに対応したEasy Authを設定します。Easy Authを設定した場合、UIの右上にログインユーザのアカウント名が表示され、チャットの履歴ログにもアカウント名が記録されます。 Easy Authの設定は、こちらを参考にしてください。