ウェブノウハウ

WEB KNOWHOW

自社サイトにチャットボット

3. Dialogflowで会話のシナリオに応じたツリー型チャットボットを作る

それでは今度は、前の質問に対する回答によって次の質問が変わるようなツリー形式の会話シナリオを用意して、Dialogflowでそれを実装してみることにします。
一問一答のチャットボットを作ることはできるという前提で話を進めますので、まだ読んでないという方はあらかじめ前回の記事「intentsを使って、Dialogflowで簡単な一問一答チャットボットを作る」を読んでおいてください。
 

【1】会話のシナリオをつくる

今回は例としてこんな会話シナリオにします。

犬と猫どっちが好き? →{犬} →大型犬と小型犬どっちが好き →{大型犬} →ラブラドールレトリバーがおすすめです。
→{小型犬} →ミニチュアダックスフンドがおすすめです。
→{猫} →大型猫と小型猫どっちが好き →{大型猫} →メインクーンがおすすめです。
→{小型猫} →アメリカンショートヘアがおすすめです。

 

【2】Dialogflowでシナリオを構築する

Dialogflow を開き、作った会話シナリオを登録します。

  1. 新たにエージェントを作成します。
  2. チャットボット起動後に最初に立ち上がるintentである「Default Welcome intent」を開きます。
    Dialogflow Default Welcome intent
    そして、Responseに最初の質問を書きます。
    「犬と猫どっちが好き?」
  3. 次に「Default Welcome intent」にて「Add follow-up intent」をクリックします。
    「Add follow-up intent」は「この質疑応答の次の質疑応答をつくる」時に使うものだと覚えておいてください。
    Dialogflow Add follow-up intent
    「Add follow-up intent」をクリックするとfollow-up intentがつくられます。
    Dialogflow follow-up intent
  4. できたfollow-up intentを開きます。
    そして、わかりやすいタイトル(ここでは「dog」とします)と、「Training Phrases」に「犬」というユーザーの回答を複数パターン登録します。
    Dialogflow Training Phrases
    そして「犬」と回答入力があった次の質問を「Response」に登録します。
    「大型犬と小型犬どっちが好きですか?」
    Dialogflow Response
  5. さらに「dog」で「Add follow-up intent」します。
    Dialogflow follow-up intent
    そして、わかりやすいタイトル(ここでは「dog – big」とします)と、「Training Phrases」に「大型犬」というユーザーの回答を複数パターン登録します。
    Dialogflow Training Phrases
    そして「Response」を登録します。
    「ラブラドールレトリバーがおすすめです。」
    Dialogflow Response
    これで「犬か猫どっち? → 犬 → 大型犬か小型犬かどっち? → 大型犬 → ラブラドールレトリバー」という一つの質疑応答の流れが出来上がりました。
  6. 同様に3つの流れ「犬の小型犬パターン」と「猫の大型猫パターン」&「猫の小型猫パターン」を登録していきましょう。
    完成すると下の図のようになっているはずです。
    Dialogflow 会話シナリオ全体像

以上で、会話のシナリオ全体の完成です。
さっそくシミュレータで試してみましょう。
「こんにちは」とでも入力すると「犬か猫どっちが好き?」的な質問が出てくるはずです。
あとは、作ったシナリオを試してみてください。
いかがでしょう?
うまくコミュニケーション(っぽく)できていますか?
 
以上、前の質問に対する回答によって次の質問が変わるようなツリー型チャットボットをDialogflowで作る方法でした。
 
ここで試しに、「大型犬です」という回答を想定したところで、わざと「でっかい犬です」などと登録していない回答文を入れてみてください。
すると、Dialogflowは「わかりません」と答えるはずです。
文字列が完全一致しないとダメ、というほどではありませんが、類義語をしっかり登録してあげないと Dialogflow のほうでは理解できていないのです。
これではチャットボットになりませんよね。
 
 
ということで、次回は質問の語句にあいまいさを持たせるために、「Entity」を登録して語句の類義語にも反応できるようにする方法についてご紹介します。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!