LUISとAzure Bot Serviceを利用してMicrosoft Teamsで在庫管理ボットを動作させる
はじめに
この記事は「Microsoft Cognitive Services & Bot Framework - Qiita」の6日目になります。
概要
自身の前記事のいい加減さに反省して、もう一件記事を書きます。
LUISとAzure Bot Serviceを利用してMicrosoft Teamsで在庫管理ボットを動作させる例を紹介します。
LUISの構築やAzure Bot Serviceの構築はある程度省略しますので、
本記事を読み進める前に以下の記事を読んでいただけると理解が深まります。
LUISの設定
Phrase Listの設定
在庫管理対象となるものをPhrase Listに登録します。
今回はProductという名前で以下のように登録しました。
Entityの設定
製品のEntityとしてProductを登録します。
実際にはもっと子要素を増やすべきですがサンプルなので割愛します。
Intentの登録
製品の在庫数を取得するためのIntentをGetZaikoとして作成しました。
Actionパラメータには先ほど作成したPhraseやEntityのProductを指定し、NameもProductとしています。
(※違う名前にしたほうがわかりやすかったです。)
LUISを学習させる。
GetZaikoとなる文章パターンを覚えさせます。
何パターンかSubmitし、Trainで学習させ、Publishします。
「レモンの残りは?」のQueryの結果は以下のようになりました。
Azure Bot Serviceの実装
LUIS向けのAzure Bot Serviceの初期構築が完了している想定で進めます。
LUIS向けで構築する際に作成されるBasicLuisDialog.csxの末尾に以下のメソッドを登録します。
記事の可視性のためにメソッド内に処理をすべてまとめています。
実際はDBやWebAPI等からデータを取得することとなります。
今回、Entityが一つである前提のため、result.Entities[0].Entity という取得方法を実施していますが、通常はtypeやscoreの値をみて判断すべきだと思います。
Azure Bot Serviceのチャットウィンドウで動作を確認します。
期待通り動作しました。
Microsoft Teamsへの登録
https://dev.botframework.com/ にアクセスしてログインします。
Azure Bot Serviceでは作成した時点でMyBotsに登録されているところが便利だと思います。
Add another channel から Microsoft Teamsの行のAddを選択します。
Microsoft Teamsとの連携を有効にし、「I'm done configuring Microsoft Teams」のボタンをクリックします。
ChannelsにMicrosoft Teamsが加わりました。
Test linkの「Add to Teams」をクリックするとTeamsのアプリケーションが起動し、chatbotとのチャット画面が開きます。
以上でTeamsとの連携まで完了しました。
まとめ
在庫管理っぽいことをするボットを作成してみました。
例えば製品販売店であれば、実際の在庫管理システムとリンクさせたボットを公開し、顧客の購買部のメンバーが参加するTeamsに登録いただくなんてことも考えられます。
ボットを活用して問い合わせに対する時間が削減できるとよいですよね。
余談
なぜ、今回の記事の連携先にMicrosoft Teamsを選んだかというと、個人でOffice365 Business Premiumを契約しているけど、契約人数が一人のため、Teamsのチャットがつまらなかったからです。
もうこれで1人じゃないよ! このボットは自分自身への最高の誕生日プレゼントです。