Googleの対話AIである、Dialogflowを使って前回はチャットをしましたが、今回は、もっと会話らしくするために、相手から情報を得る方法を設定してみたいと思います。
情報を得るというのは、例えば、
このような流れのチャットボットを設定してみたいと思います。
Intentを作成
この「 Welcom」というIntentを作成します。
「はじめまして」をTraining phrasesに設定して、受け答えする言葉を設定しておきます。
つぎに、その受けた言葉に対しての応答を設定します。
とりあえず、「SAVE」して次にいきます。
Add follow-up intentの設定
Welcom Intentにマウスポインタを持っていくと、Add follow-up intentという文字がでてきますので、それをクリックします。
「Custam」「fallback」「yes」「no」「later」「・・・」という選択肢がでてきますが、テンプレートのようなので、どれを選んでもいいようです。
「Custam」を選択しておきます。
下の階層に「Welcom-custom」というのが出来ているので、クリックして開きます。
Entityの設定
Entityというのは、ユーザーから抽出したいキーワードの事です。
Entityには日付や住所と言った標準でDialogflowが抽出・解析できるSystem Entityに加えて、開発者が独自にDeveloper Entityを追加することもできるようです。
Training phrasesに「田中です」のような適当な言葉をいれてから、田中の部分を選択すると、サブメニューが出てきます。
この「田中」の部分が相手によって変化する部分なので、Entityの設定をします。
何が入るかわからない場合は、「@sys.any」を選択しておけばいいようです。
そして、SAVEして保存すると、「Action and parameters」にパラメータとして追加されます。
パラメータを使って返答
「$」キーを入力すると、$anyというのが選択肢にでてきますので、それをクリックすると、$anyという文字が入ります。
これが、パラメータなので、続けて返答する言葉を入れて設定します。
つまり、
$パラメータ名
ってことです。
とりあえず、ここまでSAVEしてテストしてみました。
ちゃんと、パラメータ部分に、「田中」と入っています。
ここまでは、うまく行っているようですね。
次に、「どこから来たのか?」の設定をしてみました。
階下に、 Add follow-up intentの設定
同じように、Add follow-up intentの設定をしていきます。
結論から言っちゃいますが、うまく行きませんでした。
この設定に関しては、後ほど勉強が進んだ時に修正させていただきます。
解決方法
階上からのパラメータを引き継ぐには、
#CONTEXTS名.パラメータ名
という決まりがあるようです。
更に、@sys.snyだとうまく行きませんでしたが、@sys.adressならうまく行きました。@sys.geo-countryなども場所だとおもってつかってみましたが、ダメでした。どうも英文しかダメなパラメータもあるようです。
#namae-followup.any ※ネーミングを変えたので注意
とりあえず、このようにパラメータを使えば、階上からのパラメータも引き継げるようです。
また、followup-intentなどのネーミングを変えると階下にパラメータが引き継げないケースもあるので、その場合は、新たにfollowup-intentを設定すると引き継げるといった癖がありました。