このデモは、ChatGPTライクなインターフェースを使用して企業の社内文書を検索するアプリケーションの実装パターンです。デモアプリを利用するためには、Azure Open AI の ChatGPT(gpt-35-turbi)モデルと、Azure Cognitive Search、他にいくつかのリソースの作成が必要です。
このリポジトリでは、サンプルデータに厚生労働省のモデル就業規則を使用しています。
デモアプリは以下のように動作します。
重要: このサンプルをデプロイするには、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-python3
でpython
とpython3
をリンクさせることができます。
- Node.js
- Git
- Powershell 7+ (pwsh) - Windowsで実行する場合のみ
- 重要:
pwsh.exe
がPowerShellコマンドとして実行できることを確認して下さい。
- 重要:
注意: 実行するユーザのAADアカウントは、
Microsoft.Authorization/roleAssignments/write
権限を持っている必要があります。この権限は ユーザーアクセス管理者 もしくは 所有者が保持しています。
- このリポジトリをクローンし、フォルダをターミナルで開きます。
azd auth login
を実行します。azd init
を実行します。- 現在、このサンプルは必要なAzure Open AIのモデルがデプロイ可能な米国東部もしくは米国中南部リージョンにデプロイ可能です。最新の情報はこちらを参考にしてください。
新規に環境をデプロイする場合は、以下のコマンドを実行してください。
az ad user show --id your_account@your_tenant -o tsv --query id
を実行して、操作をするユーザのAADアカウントのオブジェクトIDを取得します。- 取得したオブジェクトIDを環境変数
AZURE_PRINCIPAL_ID
にセットします。- Windows環境で実行している場合は、
set AZURE_PRINCIPAL_ID="Your Object ID"
を実行します。 - Linux環境で実行している場合は、
export AZURE_PRINCIPAL_ID="Your Object ID"
を実行します。
- Windows環境で実行している場合は、
azd up
を実行します。- このコマンドを実行すると、Azure上に必要なリソースをデプロイし、アプリケーションのビルドとデプロイが実行されます。また、./data
配下のPDFを利用してSearch Indexを作成します。- コマンドの実行が終了すると、アプリケーションにアクセスする為のURLが表示されます。このURLをブラウザで開き、サンプルアプリケーションの利用を開始してください。
コマンド実行結果の例:
注意: アプリケーションのデプロイ完了には数分かかることがあります。"Python Developer"のウェルカムスクリーンが表示される場合は、数分待ってアクセスし直してください。
アプリケーションをローカルで実行する場合には、以下のコマンドを実行してください。azd up
で既にAzure上にリソースがデプロイされていることを前提にしています。
azd login
を実行する。src
フォルダに移動する。./start.ps1
もしくは./start.sh
を実行します。
2023年6月現在、GPT-4モデルは申請することで利用可能な状態です。このサンプルはGPT-4モデルのデプロイに対応していますが、GPT-4モデルを利用する場合には、こちらを参考に、GPT-4モデルをデプロイしてください。また、GPT-4モデルの利用申請はこちらのフォームから可能です。
GPT-4モデルのデプロイ後、以下の操作を実行してください。
- このサンプルをデプロイした際に、プロジェクトのディレクトリに
./${環境名}/.env
ファイルが作成されています。このファイルを任意のエディタで開きます。 - 以下の行を探して、デプロイしたGPT-4モデルのデプロイ名を指定してください。
AZURE_OPENAI_GPT_4_DEPLOYMENT="" # GPT-4モデルのデプロイ名 AZURE_OPENAI_GPT_4_32K_DEPLOYMENT="" # GPT-4-32Kモデルのデプロイ名
azd up
を実行します。
GPT-4モデルは、チャット機能、文書検索機能のオプションで利用することができます。
必要に応じて、Azure ADに対応したEasy Authを設定します。Easy Authを設定した場合、UIの右上にログインユーザのアカウント名が表示され、チャットの履歴ログにもアカウント名が記録されます。 Easy Authの設定は、こちらを参考にしてください。