以前、Microsoft社が公開しているChatGPTライクなアプリケーションのリポジトリを紹介する記事を書きました。
簡単な手順でAzure OpenAIと統合したチャットアプリをデプロイでき、アクセス時の認証設定もできるので社内向けChatGPT(ライクなアプリケーション)におすすめ、というものです。
記事を公開してからそれなりの期間が経ってしまいましたが、これまでに素晴らしいアップデートがされているので紹介します。
チャット履歴が利用できる
CosmosDBを使用したチャット履歴が実装されています。
構築手順は非常にシンプルです。
CosmosDBをデプロイしてデータベースおよびコンテナを作成します。(それぞれの命名の例は.env.exampleに記載があります。)
1点分かりにくい点として、Partition Key
には /userId
を設定します。
ドキュメントに「infrastructureフォルダー内のARMテンプレートは、アプリ・サービスのデプロイに使用できます。」と記載がある通り、設定に困ったら infrastructure/deployment.json
を見るのがよいでしょう。
後はREADME記載の環境変数に値を設定すればOKです。ネットワークの設定を適切に行うことも忘れずに。
Azure OpenAIとの接続でプライベートエンドポイントを使用していれば、ネットワークの設定を使いまわせるのでCosmosDB用のプライベートエンドポイントを作るだけでよく楽でした。
タイトルやロゴなどのUIを環境変数で設定できる
2024年4月時点では以下が設定可能です。
環境変数 | 説明 |
---|---|
UI_TITLE | チャットタイトル(左上)とページタイトル(HTML) |
UI_LOGO | ロゴ(左上) |
UI_CHAT_TITLE | タイトル(チャットウィンドウ) |
UI_CHAT_LOGO | ロゴ(チャットウィンドウ) |
UI_CHAT_DESCRIPTION | 説明(チャットウィンドウ) |
UI_FAVICON | favicon |
UI_SHOW_SHARE_BUTTON | 共有ボタン(右上) |
UI_CHAT_*
はアプリを開いた際に中央にでかでかと表示されるものです。
直接プログラムを触らなくてよくなったのがとても嬉しいですね。
特に社内向けに公開するうえで共有ボタンは明らかに不要なので、環境変数で非表示にできるようになってよかったです。
ちなみにカスタマイズする際の独自の画像ファイルはfrontend/public
配下に配置します。
ビルド時にstatic
配下にコピーされアプリはそこを参照するので、環境変数には/static/favicon.ico
のように設定してあげれば表示されます。
これらを設定しても英語の部分は多々あるので引き続きプログラムを修正するのもよいかもしれないですが、これを機に「環境変数で設定できるとこのみUIを変える」と割り切ってしまうのも選択肢かと思います。
環境変数でデバッグログの有効化/無効化ができる
これも地味にうれしいアップデートですね。
Azureへのデプロイ時にハマった際は、アプリが立ち上がる前の問題だったのであまり役に立たなかったのですが、今後活躍の場面はありそうです。
ちなみにハマった点としては、Azure portalでApp Serviceを作ってからAzure CLIでREADME記載のコマンドでアプリのデプロイを試みた際、
ModuleNotFoundError: No module named 'uvicorn'
のエラーが出てサーバーが立ち上がらないというものでした。
結果として、App Serviceを一度削除し、App Serviceの作成からAzure CLIで行ったところうまくいきました。ご参考まで。
その他
スケーラビリティの強化、Chat with dataの機能やデータソースの充実、Prompt Flowのサポート等、日々様々なアップデートがなされています。
今後も注目していきたいですね。開発者の皆さんに感謝です。