ボット開発者は、通常、ユーザーのプライマリインテントを解決するためにタスクを作成します。しかし、ユーザーの会話は、プライマリインテントの一部として、関連するインテント(フォローアップまたはサブインテント)に分岐することができます。ここでは、航空券を予約するボットのサンプル会話を見てみましょう。
ボット:こんにちは、今日はどのようなご用件でしょうか? ユーザー: ロサンゼルスからニューヨーク行きのフライトには、どのようなオプションがありますか? ボット:かしこまりました。旅行の日程を教えてください。 ユーザー: ちょっと待って、今度の日曜日は雨が降りますか?
この会話のプライマリインテントは、航空券の予約です。しかし、ユーザーは予約を完了する前に天気予報を知りたいと思っており、これは有効なユースケースです。ユーザーインテントノードは、ダイアログタスクにルートインテントやフォローアップ(またはサブインテント)を追加するのに役立ちます。フォローアップインテントのフローは、遷移を使用して同じダイアログタスク内に構築され、外部のタスクにリンクさせることはできません。フォローアップインテントの実行が完了すると、追加した遷移に基づいて、同じダイアログタスク内で会話フローが続行します。
セットアップ
ダイアログタスクでのユーザーインテントノードの設定は、以下の手順で行います。
ノードの追加
- ダイアログタスクを開き、ユーザーインテントノードを追加します。
- ユーザーインテントノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください。
- ユーザーインテントウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。
ノードの設定
コンポーネントプロパティ
- コンポーネントプロパティタブの一般設定では、以下の変更が可能です。
- 名前 と
- 説明。
接続プロパティ
- 接続タブをクリックして、遷移プロパティを設定し、次に実行するダイアログタスクのノードを決定します。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。
- 接続ルールセクションにおいて、条件を追加をクリックします。
- 以下のいずれかの基準に基づいて、条件式を設定します。
- エンティティ:ダイアログ内のエンティティノードを特定の値と比較します。
- エンティティを選択します。
- ドロップダウンリストから演算子を選択します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。
- 値フィールドに数字を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)。
- コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
- インテント:次のユーザーの発話に一致するインテントを選択します。
- エンティティ:ダイアログ内のエンティティノードを特定の値と比較します。
- 次へ進むドロップダウンリストで、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount (エンティティ) が(演算子) 5 (指定値)より大きい場合、次へ進むオファー(サブダイアログ)になります。
- その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
メモ: 複数のIf条件を書きたい場合は、最後のIf条件式の下の +その他の条件を追加をクリックします。