Dialogflow 2 簡単な応答フレーズの設定

2Reading Time

では実際にエージェントを作成して予約を行う簡単な会話を作成してみたいと思います。

エージェントの作り方

新規エージェント(Agent)の作成画面から説明を始めます。まずは画面と入力項目の説明です。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

Agent nameはAgent名(開発者が分かる名前でOK)を入力します。

DEFAULT LANGUAGEは、日本語の場合「Japanese-jp」を選択します。後で変更できないので注意が必要です。

DEFAULT TIME ZONEは、日本でサービスを行う場合「Asia/Tokyo」を選択します。

GOOGLE PROJECTは「Create a new Google project」を選択してください。

上記の入力に続き上の「CREATE」ボタンで新規エージェントが作成されます。

パラメータを使ったインテント(会話)の作成

これから「自転車屋さんの予約をスケジュールする」という会話を成立してみたいと思います。エージェントとユーザーの会話の例は以下の内容です。

  • ユーザー:こんにちは。
  • エージェント:ようこそ。営業時間を知りたいですか? または修理や購入の相談予約の設定ができます。どちらがいいですか?
  • ユーザー:今日の午後3時に修理の予約をしたい。
  • エージェント:かしこまりました。〇〇〇日の〇〇時に修理の予約をしました。では近いうちにお会いしましょう。さようなら。

エンティティ(Entity)を作る

ユーザーの発言には、自転車ショップを訪れたい「理由」及び日時を示す情報「午後3時」と「今日」が含まれています。日付、時間はシステムエンティティといってダイアログフローが標準で持っています。エージェントの応答は、それを日時と判別して返答しています。

また、この会話で理由にあたる「修理」や「相談」は開発者エンティティ(Developer entities)といってシステムエンティティでカバーされていない概念に関する情報を抽出する必要がある場合に独自に設定する必要があります。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

開発者エンティティ「予約目的」を設定していきます。その一つとして「修理」を設定します。その類似語を右に入力していきます。ユーザーはどのような単語を使うかわからないので、可能性のある単語を広く入力していきます。「相談」も同じように考えられる単語を入れておきます。

Define synonymsにチェックを入れることで類似語の入力ができます。また、Allow automated expansionにチェックを入れると自動的に似たような類似語を追加していってくれます。

Intentを作る

左のメニューからIntentの+をクリックしてユーザーが予約を行うインテント(Intent)を追加します。インテント名を「reservation」として保存。

トレーニングフレーズ(Training phrases)

トレーニングフレーズ(Training phrases)に「今日の午後3時に修理の予約をしたい。」と入力していみます。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

「今日の」が自動的にシステムエンティティの「date」に、「午後3時に」が「time」に、そして「修理」が設定した「Purpos-of-resevate」に認識されました。

トレーニングフレーズはたくさんの事例を入れるほど認識力がアップします。

レスポンス(Responses)の設定

ユーザーの発言に対する返答フレーズを設定します。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

日付の部分には「$date」を時間の部分には「$time」をそして理由の部分に「$Purpose-of-reservation」を入れます。ここに返答の内容が自動的に代入されます。

Tri it nowでテスト

画面右側の「Tri it now」に「明日の午後3時にリペアの予約をしたい。」と入力してみましょう。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

DEFAULT RESPONSEに回答が返されます。「かしこまりました。2019-06-21の15:00:00に修理の予約をしました。では近いうちにお会いしましょう。さようなら。」と帰ってきました。「リペア」自動的にデフォルトエンティティの「修理」に変換されています。

Action and parametersで必要な内容を確認する

例えば予約に必要な「理由」の情報が抜けていたらどうでしょう。それを防ぐために必須の情報が抜けていた場合確認する機能があります。

  • ユーザー:明日の午後3時に予約をしたい。
  • エージェントどのようなご用件ですか?
  • ユーザー:修理です。
  • エージェント:どのようなご用件ですか?
  • エージェント:かしこまりました。〇〇〇日の〇〇時に修理の予約をしました。では近いうちにお会いしましょう。さようなら。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

Action and parametersの「REQUIRED(必須)」にチェックを入れ、「Define prompts…」をクリックして、その項目がなかった時のフレーズを登録します。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

Tri it nowでテストしてみましょう。

グローバルリンク - Dialogflow 2 簡単な応答フレーズの設定

このように「どのような要件ですか?」とエージェントが内容を確認し必須全ての項目についてかくにんします。