Microsoft製Private AI Chatが大幅にアップデートして「Azure Chat」となって復活したのでローカルで動かしてみた

glidenote

glidenote

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として再度公開されましたhttps://github.com/microsoft/azurechat

Azure上や今回のようにローカル環境で動かすことが可能 公式ページでの以下がメリットと謳われています

メリット: 1. プライベート: お客様のデータのプライバシーを保証し、OpenAIが運営するデータとは完全に隔離されています。 2. 管理された: ネットワークトラフィックはお客様のネットワークに完全に隔離され、その他のエンタープライズグレードのセキュリティコントロールが組み込まれています。 3. 価値: 独自の内部データソース(プラグアンドプレイ)、またはプラグインを使用して内部サービス(ServiceNowなど)と統合し、付加的なビジネス価値を提供します。 (原文) Benefits are: 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). https://github.com/microsoft/azurechat

Azure OpenAIとは

ローカル環境で動かすための前提条件

  • 利用しているAzureテナント(アカウント)Azure OpenAIが利用出来る状態である
  • Azureの下記リソースを作成できる権限を持っている Azure OpenAI
  • Azure Cosmos DB
  • Cognitive search
  • Document intelligence

GitHubのアカウントを持っている

  • GitHubのアカウントは認証に利用します。Azure ADも利用可能ですが、今回はGitHubアカウントを利用します

Node.jsのインストールとnpm install が実行出来る状態

  • Dockerで起動することも可能です

ローカル環境で動かすための流れ

関連するコンポーネントが多いため、ローカル環境で動かすのも大変です。

  1. Azure OpenAIでインスタンスの作成、モデルのデプロイ、各種設定値の取得
  2. Azure Cosmos DBの作成し、AZURE_COSMOSDB_DB_NAMEAZURE_COSMOSDB_CONTAINER_NAMEの取得
  3. Azure Cognitive Searchの作成し、AZURE_SEARCH_API_KEYAZURE_SEARCH_NAMEAZURE_SEARCH_INDEX_NAMEAZURE_SEARCH_API_VERSIONの取得
  4. Document Intelligenceの作成し、AZURE_DOCUMENT_INTELLIGENCE_ENDPOINTAZURE_DOCUMENT_INTELLIGENCE_KEYの取得
  5. GitHub OAuth Apps のセットアップし、AUTH_GITHUB_IDAUTH_GITHUB_SECRETの取得
  6. アプリをGit Cloneして.env.localにアプリ起動に必要な環境変数を設定
  7. npm packagesのインストールとアプリの起動 (Dockerで起動することも可能)

Azure ChatGPTとは異なりAzure ChatではCognitive SearchとDocument Intelligenceの設定が追加になっていました。

Azure OpenAIでインスタンスの作成、モデルのデプロイをデプロイし、各種設定値の取得

インスタンスの作成やモデルのデプロイは公式ドキュメントを参照ください

モデルをデプロイしたあとは、必要な環境変数を取得していきます。

Azure ChatGPTからAZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAMEが追加されているので注意してください。

Azure Cosmos DBでインスタンスの作成し、 AZURE_COSMOSDB_URI と AZURE_COSMOSDB_KEY の取得

Azure Cosmos DB の作成方法も公式ドキュメントを参照してください。

(Azure ChatGPT時代と環境変数名が変更になっているため注意AZURE_COSMOSEDB_URI=>AZURE_COSMOSDB_URI)

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のときに存在したリポート機能は削除されていました。

まとめ

  • Microsoft製のAzure ChatGPTがAzure Chatとなって再公開されたので、再びローカル環境で動かしてみました。
  • 日本語入力の不具合は解消されていたので、当社も試験導入が可能になりました。

Azure Developer CLIを用いてAzure上にデプロイも出来るとのことなので、別で検証をしたいと思います。

この記事をシェア