Google DialogflowでLINEチャットボットをサクッと作成(第3弾)|follow-up intentでツリー型の対話

DialogflowでLINEチャットボットをサクッと作成第3弾は、<follow-up intent>を使ってツリー型の会話を作っていきます。ユーザーに何回か質問をして、ユーザーが欲しいと思っている情報を絞り込んで最適な回答をするというツリー型の会話を実現するものです。

今回は、ユーザーに対し、血液型や最近起きた出来事などを聞いて、そのユーザーの今の気持ちや感性に合うオススメの曲を選んでくれるLINEチャットボットを作成しようと思います。

今の気持ちや感性に合った曲を選んでくれるLINEチャットボットを作ろう

まずは最初に「オススメの曲は」と聞くと曲を選ぶシナリオに入っていくようにします。

新規のインテントを作り、「Recommend song」と名前をつけました。

そして<Training phrases>には、「オススメの曲は?」と登録し、<Responses>に、下記の画像のように、ユーザーに好きなジャンルの音楽を聞く内容を登録します。

次に上記画像のインテントで、ユーザーに好きなジャンルを聞いているのでそれに答えるインテントを作成します。

その時、直前の「Recommend song」インテントが発動した後のみ、受けられるインテントを作成するのですが、そこで利用する機能が、<follow-up intent>です。

follow-up intentを使ってツリー型の会話シナリオを作成

下記の左側の画像を見てください。「Recommend song」の右側にマウスを持って行くと隠しメニューのようになっている<follow-up intent>が出てくるので、そこをクリックします。すると、プルダウンメニューが出てきますので、一番上の<custom>を選択します。

それぞれのメニューについて全部の説明は割愛しますが、例えば、<cancel>は、予約などをキャンセルするような時に利用します。インテントの中の<Training phrases>に「やめる」「停止する」などのキャンセルに関するコーパスが、最初から登録されています。

さて上記画像の<custom>をクリックすると、編集画面が出てくるので、ここでは、好きなジャンルがBLUESだった場合の発話内容を作成します。

インテント名は、「Recommend song – BLUES」としてみました。一つ前のインテント名を引き継いだ名前にするとわかりやすいと思います。

follow-up intentはContextsが自動で登録される機能

下記の画像の右側編集画面の一番上の項目であるContextsを見てください。

ここに、「Reccomendsong-followup」とありますが、これは自動で登録されます。ちなみに、一つ前のインテントの方にも、「Reccomendsong-followup」が出力側に自動で登録されます。

つまり、follow-up intentは、Contextsが自動で登録される機能なんですね。

さて、これで直前の「Recommend song」インテントが発動した後のみ、「Recommend song – BLUES」がヒットするようになります。

その後も、「血液型」のインテントと「最近起きた出来事」に関するインテントを同じようにfollow-up intentでつないで登録していきます。

そうすると、Intentsの一覧がツリー型になっていきます。

さて実際にどのような会話の流れになるかを、LINE上で確認してみました。

ユーザー:オススメの曲は?

チャットボット:まずは好きな音楽のジャンルを教えて。「POPS」「ROCK」「BLUES」「JAZZ」「LATIN」の中から一つ選んでね。

ユーザー:「BLUES」

チャットボット:血液型を教えて

ユーザー:A型です。

チャットボット:最近あなたに起きたことを教えて。「結婚」「別れ」「出会い」「旅」

ユーザー:出会い

チャットボット:さだまさしさんの「パンプキン・パイとシナモン・ティー」はどうでしょう。

といった流れになります。

ちなみに、さだまさしさんの「パンプキン・パイとシナモン・ティー」はほっこりするいい曲です。私も好きな曲です。

ちなみに、ジャンルや血液型を回答するとき、わざわざテキストで入力するのが面倒だと思います。

LINEのAPIを利用して、ボタンやカルーセルで選択できるようにすることもできます。

これはまた別の機会にやってみようと思います。

というわけで、follow-up intentを利用すると簡単に、ツリー型の会話が実現できてしまいます。

ちなみに、Contextsを手動で追加していく方が柔軟なやり取りを実現できます。この辺は用途や目的によって、使い分ければいいと思います。

コメント

タイトルとURLをコピーしました