IDチームの前田です。以前紹介したAzure ChatGPTがGitHub上で公開直後に非公開になっていましたが、大幅にアップデートされて、「Azure Chat」と名称を変更しGitHubで公開されたので、再びローカル環境で動かしてみました
本ブログは、2023/09/19までの情報をもとに記載しています。
実際の設定の際に不明点が発生した場合は、公式ドキュメントをご参照ください。
三行まとめ
- Microsoft製のエンタープライズ向けのPrivate ChatGPTがAzure Chatと名称を変更し、機能のアップデートされて再度公開されたので、ローカルマシン(M2 Macbook Pro)で動かしてみました
- Azure ChatGPT検証時に問題となっていた日本語入力の不具合は解消済
- 日本語入力の不具合が解消されたので、ようやく業務用途で検証が可能になりました
Azure Chat とは
- Microsoft製のAzure OpenAIを利用したエンタープライズ向けのAIチャットです
- 2023年08月にGitHub上で公開されたあとに非公開になっていたAzure ChatGPTが、名称を変えてAzure Chatとして再度公開されました
- Azure上や今回のようにローカル環境で動かすことが可能
- 公式ページでの以下がメリットと謳われています
メリット:
1. プライベート: お客様のデータのプライバシーを保証し、OpenAIが運営するデータとは完全に隔離されています。
2. 管理された: ネットワークトラフィックはお客様のネットワークに完全に隔離され、その他のエンタープライズグレードのセキュリティコントロールが組み込まれています。
3. 価値: 独自の内部データソース(プラグアンドプレイ)、またはプラグインを使用して内部サービス(ServiceNowなど)と統合し、付加的なビジネス価値を提供します。(原文)
Benefits are:https://github.com/microsoft/azurechat
- Private: Built-in guarantees around the privacy of your data and fully isolated from those operated by OpenAI.
- Controlled: Network traffic can be fully isolated to your network and other enterprise grade security controls are built in.
- Value: Deliver added business value with your own internal data sources (plug and play) or use plug-ins to integrate with your internal services (e.g., ServiceNow, etc).
Azure OpenAIとは
- Microsoftが提供するクラウドベースの人工知能(AI)サービスの一つです
- OpenAI社の提供するChatGPTとの違いは東京エレクトロンデバイス社のページに詳しくまとまっています
ローカル環境で動かすための前提条件
- 利用しているAzureテナント(アカウント)Azure OpenAIが利用出来る状態である
- Azureの下記リソースを作成できる権限を持っている
- Azure OpenAI
- Azure Cosmos DB
- Cognitive search
- Document intelligence
- GitHubのアカウントを持っている
- GitHubのアカウントは認証に利用します。Azure ADも利用可能ですが、今回はGitHubアカウントを利用します
- Node.jsのインストールとnpm install が実行出来る状態
- Dockerで起動することも可能です
ローカル環境で動かすための流れ
関連するコンポーネントが多いため、ローカル環境で動かすのも大変です。
- Azure OpenAIでインスタンスの作成、モデルのデプロイ、各種設定値の取得
- Azure Cosmos DBの作成し、
AZURE_COSMOSDB_DB_NAME
とAZURE_COSMOSDB_CONTAINER_NAME
の取得 - Azure Cognitive Searchの作成し、
AZURE_SEARCH_API_KEY
AZURE_SEARCH_NAME
AZURE_SEARCH_INDEX_NAME
AZURE_SEARCH_API_VERSION
の取得 - Document Intelligenceの作成し、
AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT
AZURE_DOCUMENT_INTELLIGENCE_KEY
の取得 - GitHub OAuth Apps のセットアップし、
AUTH_GITHUB_ID
とAUTH_GITHUB_SECRET
の取得 - アプリをGit Cloneして
.env.local
にアプリ起動に必要な環境変数を設定 - npm packagesのインストールとアプリの起動 (Dockerで起動することも可能)
Azure ChatGPTとは異なりAzure ChatではCognitive SearchとDocument Intelligenceの設定が追加になっていました。
Azure OpenAIでインスタンスの作成、モデルのデプロイをデプロイし、各種設定値の取得
インスタンスの作成やモデルのデプロイは公式ドキュメントを参照ください
モデルをデプロイしたあとは、必要な環境変数を取得していきます。
Azure ChatGPTからAZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME
が追加されているので注意してください。
AZURE_OPENAI_API_KEY= AZURE_OPENAI_API_INSTANCE_NAME= AZURE_OPENAI_API_DEPLOYMENT_NAME= AZURE_OPENAI_API_VERSION=2023-03-15-preview AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME=
AZURE_OPENAI_API_VERSION は https://learn.microsoft.com/ja-jp/azure/ai-services/openai/whats-new にて確認が可能です。2023年09月19日時点では 2023-05-15
が最新になります。
Azure Cosmos DBでインスタンスの作成し、 AZURE_COSMOSDB_URI
と AZURE_COSMOSDB_KEY
の取得
Azure Cosmos DB の作成方法も公式ドキュメントを参照してください。
(Azure ChatGPT時代と環境変数名が変更になっているため注意 AZURE_COSMOSEDB_URI
=> AZURE_COSMOSDB_URI
)
AZURE_COSMOSDB_URI=https://<cosmoresourcename>.documents.azure.com:443/ AZURE_COSMOSDB_KEY=
Azure Cognitive Searchの作成し、 AZURE_SEARCH_API_KEY
, AZURE_SEARCH_NAME
, AZURE_SEARCH_INDEX_NAME
, AZURE_SEARCH_API_VERSION
の取得
Azure Cognitive Search の作成方法も公式ドキュメントを参照してください。
AZURE_SEARCH_API_KEY= AZURE_SEARCH_NAME= AZURE_SEARCH_INDEX_NAME= AZURE_SEARCH_API_VERSION="2023-07-01-Preview"
Document Intelligenceの作成し、 AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT
, AZURE_DOCUMENT_INTELLIGENCE_KEY
の取得
Azure Document Intelligence の作成方法も公式ドキュメントを参照してください。
AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT="https://REGION.api.cognitive.microsoft.com/" AZURE_DOCUMENT_INTELLIGENCE_KEY=
GitHub OAuth Apps のセットアップし、 AUTH_GITHUB_ID
と AUTH_GITHUB_SECRET
の取得
- GitHub OAuth Apps のセットアップ https://github.com/settings/developers
- New OAuth App で新規アプリを作成 https://github.com/settings/applications/new
- 必要項目を入れて、クレデンシャル情報を取得
Application name | Azure Chat Environment |
Homepage URL | http://localhost:3000/ |
Authorization callback URL | http://localhost:3000/api/auth/callback/github/ |
アプリをGit Cloneして.env.local にアプリ起動に必要な環境変数を設定
~/repos
を作成して作業をしていますが、適宜変更してください。 “.env.local` にはこれまでの手順で取得した環境変数を設定していきます。
mkdir ~/repos/ cd ~/repos/ git clone git@github.com:microsoft/azurechat.git cd azurechat/src/ cp .env.example .env.local
.env.local
の例
AZURE_OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AZURE_OPENAI_API_INSTANCE_NAME=xxxxxxxxxxxxxxxxx AZURE_OPENAI_API_DEPLOYMENT_NAME=xxxxxxxxxxxxxxxx AZURE_OPENAI_API_VERSION=2023-05-15 AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME=xxxxxxxxxxxxxxxxxxxx # Update your admin email addresses - comma separated ADMIN_EMAIL_ADDRESS="you@email.com,you2@email.com" # You must have atleast one of the following auth providers configured AUTH_GITHUB_ID=xxxxxxxxxxxxxxxxxxxx AUTH_GITHUB_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Update your production URL in NEXTAUTH_URL NEXTAUTH_SECRET=AZURE-OPENIAI-NEXTAUTH-OWNKEY@1 NEXTAUTH_URL=http://localhost:3000 # Update your Cosmos Environment details here AZURE_COSMOSDB_URI=https://xxxxxxxxxxxxxxxxxxxxxx.documents.azure.com:443/ AZURE_COSMOSDB_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Update your Cosmos DB_NAME and CONTAINER_NAME if you want to overwrite the default values AZURE_COSMOSDB_DB_NAME=chat AZURE_COSMOSDB_CONTAINER_NAME=history # Azure cognitive search is used for chat over your data AZURE_SEARCH_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AZURE_SEARCH_NAME=xxxxxxxx AZURE_SEARCH_INDEX_NAME=xxxxxxxxxxxxxxxxxxxx AZURE_SEARCH_API_VERSION="2023-07-01-Preview" # Azure AI Document Intelligence to extract content from your data AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT="https://xxxxxxxxxxxxxxxxxxx.cognitiveservices.azure.com/" AZURE_DOCUMENT_INTELLIGENCE_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
npm packagesのインストールとアプリの起動
必要パッケージのインストール
npm install
アプリの起動
npm run dev
Dockerを利用してアプリを起動
READMEには記載はありませんが、repo内にDockerfileが含まれるため、Dockerを利用してアプリを起動することも可能でした。 .env.local
の用意までは手順は同じです。 (Dockerで起動するとAzure Chatのファイルアップロード機能は正常に動かなかったため、あくまでも開発検証などでの用途で利用しましょう)
docker build . -t azurechat docker run -p 3000:3000 --env-file ./.env.local azurechat
アプリへアクセス
http://localhost:3000/ にアクセスすると認証画面が表示されます。今回はGitHubアカウントでログインをします
Azure Chatの画面が表示されました!
Azure Chatを使ってみる
2023年9月19日現在最新のmacOS Chrome 117.0.5938.88ではAzure ChagGPTのときの日本語入力に不具合は解消されていました。
ChatGPTとは異なり、現時点手はStreamingには対応しておらず、ある程度まとまった回答が一気に返ってきます
機能追加がされてファイルをアップロードして、質問や要約作成も可能に。
ちなみにAzure ChatGPTのときに存在したリポート機能は削除されていました。
以下はAzure ChatGPTのリポート機能の画面で、Azure Chatからは無くなっていました。
まとめ
- Microsoft製のAzure ChatGPTがAzure Chatとなって再公開されたので、再びローカル環境で動かしてみました。
- 日本語入力の不具合は解消されていたので、当社も試験導入が可能になりました。
Azure Developer CLIを用いてAzure上にデプロイも出来るとのことなので、別で検証をしたいと思います。