本記事では、Microsoft TeamsとPower Virtual Agents for Teamsを使用して、直接キーワードに入力に対する応答文を記載する方法を紹介します。
前回の記事では、Microsoft TeamsとPower Virtual Agents for Teams(以下、PVA)を使用してチャットボットを作る方法について解説しました。PVAを利用すると、Teamsに以下のようなチャットボットを導入することができます。今回は、PVAを利用して実際にBOTを作る手順について紹介していきます。
本記事は以下の方向けの記事となっております。
・Teams内にチャットボットを導入してみたい方
・難しい設定などはせず、直書きでもいいから簡単にチャットボットを作りたい方
PVAでチャットボットを作る方法のうち、一番手軽ではありますが、データ量が多い場合にはおすすめできません。データ量が少ない場合や、応答パターンが少ない場合に適している方法になります。
もし、Power Virtual Agents for Teamsとは何か、どのように導入するのかを知りたい方は以下の記事をご参照ください。
PVAについて簡単におさらい
Power Virtual Agents(PVA)は、MicrosoftのPower Platformのひとつで、チャットボットをノーコードで作成することができるサービスです。PVAは組織外と連携する場合有料ですが、Teams内で使う場合には無料で利用することができます。
今回作成するBOTの概要
今回は、PVAを使用して以下のようなBOTを作ります。
- 【ユーザ】「でんわ」と話しかける
- 【BOT】「電話番号を検索します」(改行)「検索したい苗字をひらがなで入力してください」とBOTが応答する
- 【ユーザ】(上記発言に対して)ユーザが入力を行う ex.「さとう」
- 【BOT】入力した文字を検索する
- 【ユーザ】「(入力された文字)さんの電話番号は(XXXX)です」または、「(入力された文字)さんは登録されていません」と表示する
次項にて、各項目の具体的な手順を紹介していきます。
トリガーフレーズを決定する
トリガーフレーズとは、フローが開始するきっかけとなるフレーズです。
例えば、トリガーフレーズが「電話」の場合、ユーザーが「こんにちは」と入力してもフローは開始しません。「電話」と入力すると、フローが開始され、条件に応じてBOTが応答します。
今回は「でんわ」をトリガーフレーズとします。
「でんわ」だけでは、「電話」や「denwa」と入力された場合、このトピックが何も反応しないので、ユーザーが入力しうるパターンを全てトリガーフレーズとして入力しておきます。
画面下とトリガーフレーズのフローには入力すると勝手に単語が入ります。
今後、トピックを複数作成する場合は、同じトリガーフレーズとならないように注意してください。
目的が1つしかないBOTを作りたい場合(トピックが1つしかないBOT)、トリガーフレーズを入力しないで、いきなりフローを作成すれば良さそうですが、現時点ではそのようなフローにはできず、必ず何かしらのフレーズを入力する必要があります。
つまり、BOTを開いたらBOT側からメッセージを送ってくるようにはできず、必ずユーザーからの入力を受けてフローが実行される形となります。
質問内容を決定する
最初から配置されている「メッセージ」とは、BOTが単純に発言するメッセージのことを指します。
BOTの発言後に、ユーザに何かしらの応答を返してもらう場合は、「メッセージ」フローではなく「質問する」フローを選択する必要があります。
今回は、「検索したい苗字をひらがなで入力してください」メッセージの後に、
ユーザから返信(文字列を入力)させる必要があるので、「メッセージ」フローは削除して、「質問する」フローを選択します。
「質問する」欄に質問内容を入力する
「質問する」欄に、
電話番号を検索します
検索したい苗字をひらがなで入力してください
と入力します。
「特定」欄には入力を受け取る法則(エンティティ)を定義することができます。
今回はユーザが入力したものをそのまま受け取りたいので、「ユーザの応答全体」を選択します。
ユーザの返答を特定の名前を付けてPVA内に保存します。
今回はユーザ入力なので「input」という名前にします。
ユーザが入力した文字を検索する
入力された文字列(=input)に対してあらかじめ定義したキーワードとその結果を検索していきます。
(今回は入力された名前に対する電話番号の返答)
3種類の検索方法
キーワードと結果を定義するには、以下の3つの方法で実現することができます。
- (本記事で紹介)フロー内にキーワードごとに直接条件を記載する
- TeamsのListsを用いてキーワードに対する結果を記載する
- キーワード対する結果を記載したリストを定義したExcelをTeamsのチャネル内にアップロードし、そこからデータを取得する
Listsを使う方法、Excelを使う方法については、次回以降の記事で解説します。今回は、フロー内にキーワードごとに直接条件を記載する方法で作成します。
フロー内にキーワードごとに直接条件を記載する方法
質問の先にある「+」ボタンをクリックして、「条件を追加する」をクリックします。
追加すると、フローが2つに分かれ、1つは条件を記載し、もう1つは条件に合致しない場合の流れになります。
条件には「input」を指定し、「次の値に等しい」で「さとう」と入力します。
条件に合致した場合は「(入力された文字)さんの電話番号は(XXXX)です」と返すので、
フローの下に「メッセージを表示する」を選択します。
文字列を入力しますが、ユーザが入力した値をそのまま表示させたいので「input」という変数を指定します。変数「input」は、ユーザにより「さとう」など検索したい人の名前が入力されており、その値が入っています。
メッセージの入力欄をクリックすると、{x}の項目があると思いますので、クリックします。
この欄はPVAで管理している変数の一覧となりますので、今回の対象の「input」をクリックします。
選択により、「{x}input」と入力されます。
「{x}」が付いている場合はPVAの変数が入力となり、「{x}」がない場合はただの文字列ということになります。
メッセージには、PVAの変数を用いて「{x}inputさんの電話番号は1111です。」と入力します。
もう一方の条件にはキーワードが引っかからなかった場合の条件を入力しますので、
「メッセージを表示する」を選択し、「(入力された文字)さんは登録されていません」と出力されるようにします。
フローの終了
最後に、フローの片側を「会話を終了する」→「調査で終了する」を選択し、そのあともう一つのフローも「調査で終了する」につなぎます。
繋いでいないほうのフローで「+」マークを押下し、先端の丸部分にカーソルを合わせると色が変わりますので、その状態でドラッグ&ドロップして「調査で終了する」につなぎます。
以下のように、フローが結合できたら完成です。
この方法は簡単に作れますが、キーワードが大量にある場合や修正が頻繁に発生する場合は手間が爆増します。
キーワードが多くなりそうな場合や、フローの修正が定期的に入る可能性がある場合には、ListsまたはExcelを使う方法をお勧めします。
作成したBOTの動作確認をする
PVAではBOTを公開する前にテストを行うことができます。
トピックを編集した後などでは先に保存しておきます。
画面左側の「ボットのテスト」を選択するとBOTが起動し、テストを行うことができます。
また、テストエリアでトリガーとなるメッセージを入力すると、画面右側のフロー編集エリアにて該当のフローに焦点が当たる形で表示されます。
まとめ
今回は、Power Virtual Agents for TeamsとTeamsを使ってBOTを作成する方法について、PVA内で完結する方法(キーワードに対する応答を直接フロー内に書く方法)を紹介しました。
簡単にTeams内にBOTを導入できるので、簡易的にチャットボットを取り入れてみたいという方は一度試されてみても良いのではないかと思います。
ただ、データ件数が多い場合や、応答内容を頻繁に更新する必要がある場合などには、ListsもしくはExcelを用意し、それをPower Automateを使用して参照する方法で運用するのが現実的です。
次回は、Teams内にListsを作成し、それをPower Automateで参照して応答文を生成する方法を紹介します。
コメント
初めまして。PVA初心者でチャットボット作成中の者です。
この度、PVAで入力した内容をパワーオートメイトと連携させてエクセルへ出力できる方法を探しています。
もし既存でそのような記事がありましたら、もしくは既存でなければ、方法をご教示いただけませんでしょうか?
よろしくお願い致します。
コメントありがとうございます。
「PVAで入力した何かのデータをエクセルへ出力したい」処理について、試行錯誤を行い、実際の手順を記事にしました。
意図したものと合っていれば幸いです。
https://prtn-life.com/blog/pva-excel-output