ボット開発者は、通常、1つの主要なユーザーインテントを解決するためにタスクを作成します。しかし、ユーザーの会話は、主要インテントの一部として、関連するインテント(フォローアップまたはサブインテント)に分岐することができます。
ここでは、フライト予約ボットの会話のサンプルを見てみましょう:
ボット:こんにちは、ご用件をどうぞ。 ユーザー: どうも、LAからNYCまでのフライトでどんなのがありますか? ボット: はい、では旅行日を教えてください。 ユーザー: ちょっと待ってください、今週の日曜日は雨が降るでしょうか?
この会話の主なインテントは航空券を予約することです。しかし、ユーザーは予約を完了する前に天気予報を知りたいと考えており、これは有効な使用例です。
ユーザーインテントノードは、ダイアログタスクにルートインテントやフォローアップ(またはサブインテント)を追加するのに役立ちます。フォローアップインテントのフローは、遷移を使って同じダイアログタスク内で構築され、外部タスクにリンクすることはできません。フォローアップインテントの実行が完了すると、会話の流れは追加した遷移に基づいて同じダイアログタスク内で継続されます。
注意: 既存のダイアログタスクから新しいダイアログタスクを開始するには、ダイアログタスクノードを使用します。
ユーザーインテントノードの設定
ユーザーインテントノードを設定するには、以下のステップがあります:
コンポーネントプロパティを設定する
注意:コンポーネントのプロパティパネルで設定または編集した構成は、このノードを使用するすべてのダイアログタスクに反映されます。
これらの設定はインテントノードとサブインテントノードで同じです。
- 名前や説明などの一般的なコンポーネントプロパティ を変更します。
- 接続タブから、ダイアログタスクのどのノードを次に実行するかを決定するために、遷移プロパティを設定します。ダイアログ タスク内の任意のエンティティ オブジェクトまたはコンテキスト オブジェクトの値に基づいて条件文を書くこともでき、また、遷移にインテントを使用することもできます。
<ol - 接続タブを選択します
- IF の追加をクリックします。
- 以下のいずれかの基準に基づいて条件式を構成します:
- エンティティ: ダイアログ内のエンティティノードを特定の値と比較します:
- エンティティを選択します:
- ドロップダウンリストを使用して演算子を選択します:存在する、~に等しい、~より大きいか等しい、~より小さいか等しい、~に等しくない、~より大きい、~より小さい、~に等しくない。
- 値ボックスに数字を入力してください。例: PassengerCount (エンティティ)が 5 (指定された値)より大きい(演算子)
- コンテキスト: これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します:存在する、~に等しい、~より大きいか等しい、~より小さいか等しい、~に等しくない、~より大きい、~より小さい、~に等しくない。例: Context.entity.PassengerCount (コンテキストオブジェクト) が5(指定された値)より大きい(演算子)
- インテント: 次のユーザー発言と一致するインテントを選択します。
- Then go to ドロップダウンリストで、条件式が成功した場合にダイアログ フローで実行する次のノードを選択します。たとえば、 PassengerCount(エンティティ) が 5(指定された値) より大きい場合、 Then go toは Offers (サブダイアログ) に進みます。
- その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
注意: 複数の If 条件を書きたい場合は、最後の If 条件式の下にある Else Ifの追加 をクリックします。