その他

AI(Dialogflow)のfollow up intentとEntityで会話情報を得る方法

更新日:

Gerd AltmannによるPixabayからの画像

 

Googleの対話AIである、Dialogflowを使って前回はチャットをしましたが、今回は、もっと会話らしくするために、相手から情報を得る方法を設定してみたいと思います。

 

 

情報を得るというのは、例えば、

ユーザー「はじめまして」
Tsunko
ma2n2n
AIBot「はじめまして!お名前を教えてください?」
ユーザー「田中です」
Tsunko
ma2n2n
AIBot「田中さん、はじめまして!」
ma2n2n
AIBot「田中さん、どこから来たのですか?」
ユーザー「北海道からです」
Tsunko
ma2n2n
AIBot「北海道なんですね (^^♪」

 

このような流れのチャットボットを設定してみたいと思います。

 

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を設定すると引き継げるといった癖がありました。

-その他
-, , ,

Copyright© PCTips , 2019 All Rights Reserved.