watsonx OrchestrateをTeamsから呼び出してみる

# watsonx OrchestrateをTeamsから呼び出したい
watsonx OrchestrateはIBMの提供するAIアシスタント構築のためのプラットフォームです。生成AIによる一般的な回答や文書をソースに回答を作成する、いわゆるRAGの仕組みだけでなく、スキルと呼ばれる各種業務処理を呼び出すせることが大きな特徴です。watsonx Orchestrateはブラウザで利用可能なチャット・インターフェースを提供しますが、既にTeamsなどを利用しているユーザーからすると、普段使用しているツールを用いて利用したいケースもあるでしょう。
この記事では、Teamsからwatsonx Orchestrateを呼び出す方法について解説します。
## チャネル統合機能の利用
チャネル統合機能はAIアシスタント・ビルダーで利用することが可能です。Integration＞Channelsと進むと、FacebookやSlack、Microsoft Teamsなどが表示されているので、今回はTeamsのAddボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/88f73671-41ae-5e3e-399f-03517a6120c9.png)

Teamsと接続するための手順が表示されます。Nextをクリックして次の画面に進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/1812a447-db37-99b9-064b-f38021ba025c.png)

## アプリケーションの作成
まずAzure側にアプリケーションを作成します。リンクをクリックしてAzure側にログインし、アプリケーションの新規追加ボタンをクリックします。アプリケーションの名前を入力し、サポートされているアカウントの種類としてマルチテナントを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/74e7aa00-b2e6-5f53-c7bb-9bd349ba8987.png)

表示されているアプリケーション(クライアント)IDをコピーし、ペーストします。次に、シークレットを生成し、値をコピーしてペーストします。以上でアプリケーションの作成は完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/d0cce027-7fb1-58cc-4b8d-29a6fe17b754.png)

## ボットの作成
次にボットを作成します。NEXTボタンをクリックすると説明が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/2f50aaf4-9359-7992-93c5-b10fd7c68310.png)

表示されているリンクをクリックするとBot Frameworkの管理画面が表示されるのでログインし、必要事項を記入します。messaging endpointとapplication idについては画面に表示されているのでコピー＆ペーストします。
Registerボタンをクリックしてボットを登録します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/95f6d047-b51a-eaae-c946-ba4284b029ff.png)

Add a featured channelをクリックしてチャネル設定画面を開き、Saveをクリックして保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/13419a25-fff5-db8c-998f-c89550a676c9.png)

Microsoft Teamsがチャネルとして登録されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/2824e158-7ec1-e170-29b1-092e7c2210e7.png)
クリックすることでTeamsからメッセージを送信することが可能です。今回は何も設定していないAssistantのため、Sorryメッセージが表示されていますが、正しく応答が返ってくることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/f2acc5fd-e516-6631-9afe-37070dd44baa.png)

## Teams Appの作成
最後に、Teams側にアプリケーションを登録します。リンクをクリックしてTeams側にログインし、New appから新規にアプリケーションを登録します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/e8ab0625-54a1-265d-24fd-7df846ea5919.png)

必要事項を全て記入します。必須項目を全て入力しないとアプリをデプロイできないので注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/b04de4f9-47a8-5b18-65cf-f9490e70a865.png)
記入が完了したらSaveします。

Configure > App featuresからBotを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/9c5fd1b2-eae4-3e94-0bd3-b26ce0d353d4.png)

select an existing botからボットを選択し、Personal/Team/Group chatにチェックを入れて保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/c49f0381-d944-8ca7-a607-fe81534d71cb.png)

右上のPublishボタンをクリックし適切な方法でパブリッシュを行います。今回はPublish to your orgを選択し、ボタンをクリックしてPublishします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/f2a18920-581f-10bd-33e0-417ac67dd5fb.png)

## アプリケーションの承認
アプリをパブリッシュしても組織の管理者が承認するまでユーザーはアプリを追加することができません。Teams管理センターにアクセスし、Manage Appsからアプリを検索し、Publishボタンをクリックします。実はTeams管理センターになかなかたどり着くことができなかったのですが、下記リンクよりアクセス可能です。
https://admin.teams.microsoft.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/14b1787d-62b8-d75e-e9ae-19cd7fa7a031.png)

Teams側でアプリを追加できることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/d4717663-e736-8260-bd6b-699f87ccbe1c.png)

watsonx Orchestrate側にAI-guidedアクションという、前提知識を与えて回答を生成する機能があるので、試しに定義してTeams側から質問してみたところ、正しく回答してくれました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117736/977b9635-5ebc-aa3c-07d1-614ddd816e9d.png)

## その他の考慮点
今回はMicrosoft Teamsからwatsonx Orchestrateを呼び出してみました。watsonx Orchestrateのチャット画面を使用した場合にはテーブルや選択リスト等、便利なインターフェースが用意されていますが、TeamsやSlackを使用した場合には利用できるUIに制限があります。そこでなるべく会話型のインターフェースで業務処理を行うことが必要になってきます。実業務で複雑な入力作業が求められるケースなどでは、チャットのUIだけではなく、業務画面へのリンクを表示してそちらに移動して業務を行うなど、工夫が必要でしょう。

## まとめ
いかがでしたでしょうか？watsonx Orchestrateは独自のUIも提供しますが、Teams、Slackなど様々なチャネルと連携することも可能です。今回はTeasmとの連携を試してみました。Azure側のアプリケーション設定、ボットの定義、Teams側でのアプリケーション定義等、複数のコンソールからの設定が必要なため多少煩雑な操作でありましたが、watsonx Orchestrate側で手順をガイドしてくれるため、比較的スムーズに設定を行うことができました。

watsonx Orchestrateに関する最新情報については[こちら](https://community.ibm.com/community/user/automation/communities/community-home/recent-community-blogs?communitykey=a80f199e-a0d6-43ab-bca0-7303a731ede9)でも発信中ですので是非ご覧ください。