清水理史の「イニシャルB」
ChatGPTをMicrosoft Teamsのチャットで使う―Azure Open AIを使った設定の手順
2023年7月24日 06:00
普段の業務でMicrosoft Teamsを利用している場合は、MicrosoftのAzure Open AIを活用することで、TeamsのチャットでChatGPTを使えるようになる。
中身はAzure Logic Appsを使ったフローだが、公式のサンプルをワンクリックでデプロイできるので、最低限の設定のみで、すぐに利用可能だ。今回は導入および設定の手順を紹介する。
TeamsのチャットでChatGPTを呼び出せる
例えば、Teamsのチャットでメンバーとアイデアの検討していたが、なかなかいい案が出ず、チャットの流れが止まってしまったとする。従来なら「明日までに各自3個ずつ考えて来て!」などと指示して仕切り直したりするところだが、今回紹介する機能があれば、次のように流れを止めずにアイデア出しができる。
「gpt、〇〇についてのアイデアを3つ考えて」と、先頭にChatGPTを呼び出すためのキーワード(ここでは「gpt」)を付けて質問を投稿すると、自動的にChatGPTが呼び出され、チャットの返答としてアイデアが表示される。
Microsoftは「Copilot」として、さまざまなアプリへの大規模言語モデル(LLM)の導入を発表しているが、現状は、まだ身近なアプリから利用できるわけではない。
今回紹介する方法により、身近なアプリの1つであるTeamsに、比較的手軽にChatGPTの機能を取り込める。Azureの機能を組み合わせた自動化処理ができる「Logic Apps」を利用した自動化処理でチャネルを監視し、Teamsの会話で特定のキーワードが登場すると、フローがキックされ、API経由でAzure Open AIのChatGPTモデルに質問を投げ、返答を再びTeamsのチャットに投稿するという仕組みだ。
Microsoftの「Azure Integration Service Blog」の、以下の記事で紹介されている方法となる。
▼該当のブログ記事
Integrate Azure Open AI in Teams Channel via Logic App
Teamsで普段仕事をしている人には、この仕組みはなかなか便利で、前述した例のように、普段のチャットによる打ち合わせや相談の中にChatGPTの機能を取り込むことができる。
普段のメンバー以外に、もう一人、自らは発言しないが、聞かれればアイデアを出すオブザーバーが増えたような印象で、停滞した会話に新しいアイデアを出してもらったり、今までの会話を与えて情報をまとめてもらったり、参考資料を翻訳してもらったり、具体案としてコードを提示してもったりと、さまざまな用途にChatGPTを利用できる。
導入はワンクリックだが事前準備が必要
この機能は、サンプルのフローが前述のブログ記事で提示されており、これをワンクリックでAzureにデプロイすれば利用を開始できる。
ただし、実際に稼働させるには、いくつかのパラメーターを入力する必要があるため、以下のような準備が必要になる。
- Azure Open AIの準備
Azure Open AIを利用可能にし、APIアクセスのためのエンドポイントとキーを用意しておく - Azure Open AIのモデルのデプロイ
Azure Open AIでチャットモデル(gpt-3.5-turboなど)をデプロイしておく - Blobストレージの用意(会話保存用)
ストレージアカウントを作成し、「gpt」という名前でコンテナを作成。アクセスキーを確認しておく - Teamsの情報
ChatGPTを有効にするTeamsのチャネルのチャネルIDとグループIDを取得する
これらの準備ができたら、以下のサイトで「Deploy to Azure」ボタンをクリックし、設定画面に必要な情報を入力し、実際にLogic Appsをデプロイすればいい。
▼TeamsにAzure OpenAI(Logic Apps)をデプロイ
https://github.com/Drac-Zhang/LogicApp_For_Teams_OpenAI_Integration(GitHub)
入力する情報を確認
では、具体的にどこにどの情報を入力すればいいのかを確認していこう。Teamsのチーム名やアプリ名はそのままだが、少々分かりにくい項目を順に説明していく。
基本設定
まずは、基本設定だ。「サブスクリプション」には課金に利用するアカウントを設定する。「リソースグループ」は関連するAzureの機能をまとめるための機能なので、今回利用するほかのリソース(ストレージアカウントやAzure Open AI)と同じにしておくとわかりやすい。「リージョン」はリソースを作成するデータセンターの場所だ。今回は「Japan East」を選択した。
「Openai_apikey」「Openai_endpoint」の入力
Azure Open AIにアクセスするためのAPIキーとエンドポイントを指定する。いずれもAzure Open APIの管理画面の「キーとエンドポイント」から確認できる。
ただし、エンドポイントはプレビュー版のバージョンを利用する必要があるため以下のように指定する。
https://[リソース名].openai.azure.com/openai/deployments/[モデルのデプロイ名]/chat/completions?api-version=2023-03-15-preview
Azure Open AIでモデルとして「gpt-3.5-turbo」をデプロイしておき、「キーとエンドポイント」で確認したエンドポイントに、その名前を追加して生成する。
「Teams_channel_keyword」の入力
TeamsのチャットからChatGPTを呼び出すときに、文頭に追加するキーワードを指定する。たとえば、「gpt」と指定した場合は、チャットで「gpt, 質問文」のように入力する。「gpt」というキーワードに反応するので、「gptさん、〇〇」などとしてもいい。
「Teams_channel_id」「Teams_group_id」の入力
ChatGPTを有効にするTeamsのチャネルの情報を指定する。Teamsでチャネルのリンクを取得し、その中に埋め込まれている文字列を取り出す。「channel/」に続く文字列がチャネルIDで、「groupId=」に続く文字列がグループID。
なお、チャネルIDは、取り出した文字列の一部をコード変換(URLデコード)する必要がある、「%3a」となっている箇所は「:」(半角コロン)に、「%40」となっている箇所は「@」(半角アットマーク)に変換して入力する。
最後に手動で認証すれば、ChatGPTと会話を開始できる
上記設定を指定し、デプロイするとLogic Appsが作成される。ただし、実際に稼働させるには、Teamsのチャネルにアクセスするための認証が必要になる。
そこで、AzureのLogic Appsの「ロジックアプリデザイナー」から、作成したフローを開き、最初のTeamsへのアクセスのブロックをクリックして、認証を実行する。認証画面が自動的に表示されるので、アカウントを指定してサインインすれば完了だ。
これで、Teamsの指定したチャネルで「gptさん、チャーハンの素を使った新メニューのアイデアを3つ考えてください」などと入力すると、しばらくして回答が表示される。
単語がひとつずつ表示されるのではなく、返信がまとめて投稿されるうえ、はじめての会話の場合はBlobストレージを作成するための処理が入るので、しばらく時間がかかる場合がある。使用感は、ウェブ上のChatGPTと異なり、どちらかというとTeamsで人間とメッセージをやり取りしているイメージに近い。
もちろん、APIアクセスするので、料金はかかるが、何らかの方法で大規模言語モデルを業務に活用したいと考えている場合は、試してみる価値がある。普段の業務ツールの中で、安全かつ手軽に、自社向けのChatGPTを簡単に利用できるのでおすすめだ。
記事訂正:8月9日
記事に以下の3点の誤りがありました。お詫びして訂正いたします。
『●入力する情報を確認』部分
「Connections_teams_name」に入力するのはTeamsのチャネル名ではなくチーム名でした。
『●「Connections_teams_name」の入力』部分
チャネル名を入力するようになっていた図を訂正し、チーム名を入力することを示す内容としました。
『●「Teams_channel_id」「Teams_group_id」の入力』部分
チャンネルIDのコード変換を行う必要について記述を追加しました。