技術的な話

【Node.js】AzureOpenAIのChatGPTを使用してTeamsのチャットボットを開発してみる - Azure準備編

Teamsのチャットボットを作る際にどうせならChatGPTと連携させようと思ったのでその内容を記載します。Azureボットとバックグラウンドで動作するAppServiceを連携の都合上、開発言語はJavaScript(Node.js)にしました。
純正Microsoftなチャットボットですね。別にMicrosoftの回し者では無いですのであしからず。

本記事の目標

  • Azureのリソース準備
  • Azure BotとAzure App Serviceの連携設定

事前準備

以下に事前に必要となるアカウント等を記載します。

  • Azureアカウント
  • Azure OpenAIの利用申請(2023/05時点で利用には事前申請が必要です)
  • Azure OpenAIにGPT-3.5-turbo(Chat-GPT)をデプロイ済

開発環境

ローカルPCで必要となる環境を記載します。

  • Windows11
  • VSCode
  • Node.js 18.16
  • Bot Framework Emurator(ローカルでBotの動作を確認する際に必要になります)

ただ、本記事は主にAzure側の設定のみになるので上記はまだ準備しなくても大丈夫です。

Azureの設定

Azureボット及びApp Serviceの準備をします。

公式は以下になります。

Azureボットの作成

大まかには以下の流れで作成していきます。

  1. Azure Botをマーケットプレイスから選択します。
  2. 必要項目を入力してAzure Botをデプロイします。
  3. デプロイが完了した後に対象リソースグループを参照して以下が出来ていることを確認します。
    • Azure Bot
    • マネージドID
  4. Azure Botのプロファイルを必要に応じて変更します。

詳細手順

必要事項を入力します。

項目名設定内容
ボットハンドルボットの名称を入力します
サブスクリプションサブスクリプションを選択します
リソースグループリソースグループを選択します
データの所在地グローバル
価格レベルFree
アプリの種類ユーザー割り当て済みマネージドID

問題無ければデプロイを実行します。

デプロイ後にリソースグループに移動して、Azure Bot等が作成されていることを確認します。

ボットの名称やアイコンを変更したい場合はボットプロファイルから変更します。
今回は特段変更せずに進めます。

App Serviceの作成

大まかには以下の流れで作成していきます。

  1. Azure Serviceを選択します。
  2. 必要項目を入力してAzure Serviceをデプロイします。
  3. デプロイが完了した後に対象リソースグループを参照して以下が出来ていることを確認します。
    • App Service Plan(ASP)
    • App Service

詳細手順

必要事項を入力します。

項目名設定内容
サブスクリプションサブスクリプションを選択します
リソースグループリソースグループを選択します
Azure Botを作成したリソースグループと同じが分かりやすいです
名前App Serviceの名前を入力します
公開コード
ランタイムスタックNode 18 LTS
オペレーティングシステムLinux
地域Japan East
Linuxプラン(Japan East)自動で入力されます
価格プランFree F1(共有インフラストラクチャ)

それ以降の内容については基本的にデフォルトで問題無いです。

問題無ければデプロイを実行します。

デプロイ後にリソースグループに移動して、ASP等が作成されていることを確認します。

Azure BotとApp Serviceの連携設定

こちらはAzure Botの作成時にユーザー割り当て済みマネージドIDを選択した場合の設定方法になります。

大まかな流れとしては以下になります。

  1. Azure Botの構成ページから以下情報を取得します。
    • Microsoft App ID
    • アプリテナントID
    • アプリMSIリソースID
  2. App Serviceに1.の情報を設定する。
  3. App ServiceにマネージドIDを設定する。
  4. App ServiceのURLをコピーする。
  5. Azure Botに4.のURLを設定する。

詳細手順

Azure Botにある赤枠内の情報をコピーします。

App Serviceに移動して必要情報を設定していきます。

設定内容は以下になります。

項目名設定内容
MicrosoftAppIdAzure BotのMicrosoft App IDからコピーしてきます
MicrosoftAppPassword入力無し
MicrosoftAppTenantIdAzure BotのアプリテナントIDからコピーしてきます
MicrosoftAppTypeAzure Botのボットタイプからコピーしてきます
今回はUserAssignedMSI固定

ユーザ割り当てマネージドIDを設定します。

Azure Botをデプロイした時に同時に生成されていたマネージドIDを選択します。

App Serviceのホスト名をコピーします。

Azure Botがどのエンドポイントに接続するかを設定します。
App Serviceのホスト名から作成します。

https://<Your App Service Hostname>/api/messages

<Your App Service Hostname>は自身の環境で変えてください。

/api/messagesは一旦固定としています。(BotFrameworkのテンプレートがそうなっているので)

まとめ

以上でAzure側の設定が完了しました。

次記事では実際に動作するApp Service側のコードを記載していきます。

次記事は以下になります。

-技術的な話
-, , , , ,