ノードのグループ化は、主にノードのグループを定義し、それをダイアログキャンバスで示すために使用されます。これはダイアログフローの一部ではないことにご注意ください。
設定
プラットフォームの v8.1 よりグループ ノード機能が強化され、以下の機能が追加されました。
- インテントのスコーピング – ユーザーがグループ内のいずれかのノードで待機しているときに利用可能な、サブインテントを定義する機能
- サブインテントのトレーニング – サブインテントをトレーニングする機能
- サブインテントのプロパティ – サブインテントの動作を定義する機能
インテントのスコーピング
グループ ノードを使用して、ユーザーの発話から特定され、ユーザーがグループ内のいずれかのノードにいる間に実行されるサブインテントのスコープを指定することができます。
- インテントをスコーピングするグループにカーソルを合わせ、設定 (歯車) アイコンをクリックします。
- グループのスコープにインテントを追加するには、グループ ノード ウィンドウで [インテントを追加] を選択します。
- [インテントを追加] ウィンドウで、このグループ ノードのサブインテントとしてスコーピングするインテントを選択します。 これは、会話がこのグループ内のいずれかのノードにあるときにユーザーが求める可能性のあるインテントになります。 たとえば、目的地エンティティが求められるときに「XYZ 市の天気は?」と尋ねたり、旅行日程が求められるときに「フライトの時間」を尋ねたりします。
- [インテントを作成] ボタンで、新しいサブインテントを追加することができます。
- スコープされたインテントを追加すると、トレーニング、動作プロパティの設定や削除ができるようになります。
インテントのトレーニング
サブインテントを追加すると、このグループ内で認識のためのトレーニングをすることができます。 これで、サブインテントがグループのコンテキスト内で特定できるようになります。
- グループ設定ページで、トレーニングしたいサブインテントを選択します。
- 次を使用してサブインテントをトレーニングできます。
- 機械学習 – このサブインテントを特定させるユーザーの発話を追加します。 NER アプローチを使用して、発話内のエンティティに注釈をつけることもできます。
- パターン – ユーザーの発話から、このサブインテントに関連するパターンを特定します。
- ルール – このインテントをトリガーするインテント特定のルールを定義します。
- また、インテントの前提条件を設定することもできます。インテントの検出時に、コンテキスト内で定義された前提条件のいずれかに合う場合にのみ、サブインテントを特定させることができます。 これらの前提条件はインスタンス レベルとみなされ、コンポーネント レベルの前提条件よりも優先されます。
インテントのプロパティ
フルフィルメント セクションで、ユーザーの入力内で特定のサブインテントが検出された場合の動作を定義できます。 次のプロパティを含みます。
- コンテキスト変数 – このサブインテントが特定されたときに更新する、セッションまたはコンテキスト変数を定義するキー/値のペアを設定します。
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform. - メッセージ – オプションで、このサブインテントが特定されたときにユーザーに表示するメッセージを定義できます。 他の応答と同様に、テキスト形式や JavaScript 形式でメッセージを定義して、該当する場合は音声通話プロパティを指定できます。
- コンテキスト出力 – このインテントが特定されたときに設定するコンテキスト タグを定義します。 インテント名は、システムにより常に出力コンテキストとして設定されます。
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform. - 切り替えフロー – このサブインテントを実行後、ダイアログをどのように再開するかを定義するのにこのオプションを使用します。 2種類の動作を定義できます。
- ノードに移動 – ダイアログはここで選択したノードから再開されます。
- ダイアログを再開 – ダイアログはこのインテントが特定された時点から再開されます。
実装
以下は、グループ内でのサブインテントの動作の変化です。
- コンテキスト オブジェクトはサブインテントが特定されるたびに特定されたサブインテントの情報オブジェクトの配列で更新され、最新のものが上位に表示されます。 次の情報がキャプチャされます。
- サブインテント名
- サブインテントとともに特定されたエンティティ
- サブインテントが属するグループ名 (該当する場合)
- サブインテントが特定されたノード名
"identifiedSubIntents": [ { "intent": "Change Destination", "entities": { "destcity": "Delhi" }, "groupName": "Entity Group", "identifiedAt": "to_date" }, { "intent": "Weather Report", "groupName": "Entity Group", "identifiedAt": "destcity" } ]
- ユーザーの発話から特定されたサブインテントがグループ スコープ内にあり、すべての入力前提条件が満たされかつ切り替えフローが該当ノードに移動させるよう設定されている場合にインテントが実行されます。
- サブインテントの実行には以下が含まれます。
- 定義済みマッピングに基づくコンテキスト変数の更新
- 定義済みマッピングに基づく出力コンテキスト設定
- ユーザーに表示するメッセージ(該当する場合)
- 現在のダイアログの実行は、定義された切り替えフローに基づいて継続されます。
- 指定されたノードへ移動、または
- サブインテントが特定された時点から再開します。