노드 그룹화는 노드 그룹을 정의하고 대화 캔버스에서 같은 노드를 나타내는 데 주로 사용됩니다. 참고로 대화 흐름의 일부가 아닙니다. 그룹 노드는 후속 조치, 다이그레션(digression), 엔티티 값 수정을 통해 사용자 경험을 개선하기 위해 사용할 수 있습니다. 사용 사례 예제는 여기를 참조하세요.
추가
그룹 노드를 대화 작업에 추가하려면 다음 단계를 수행하세요.
- 그룹 노드를 추가하려는 대화 작업을 엽니다.
- 노드를 그룹화합니다. 노드 그룹화하는 단계의 경우, 여기를 참조하세요.
- 그룹 이름을 변경, 설정 또는 삭제할 수 있습니다.
- 그룹이 생성된 후에는 그룹에서 특정 노드를 추가하거나 제거할 수 없습니다.
- 추가한 모든 노드는 그룹 외부에 추가됩니다.
- 삭제한 모든 노드는 전체 대화에서 삭제됩니다.
- 그룹을 삭제하더라도 대화에서 그룹 내의 노드는 삭제되지 않습니다.
노드 설정
그룹 노드 기능에는 다음이 포함됩니다.
- 의도 범위 지정 – 사용자가 그룹의 노드에서 대기 중일 때 사용할 수 있는 하위 의도를 정의하는 기능입니다.
- 하위 의도 학습 – 하위 의도를 학습시키는 기능입니다.
- 하위 의도 속성 – 하위 의도의 동작을 정의하는 기능입니다.
사용 사례의 예시의 경우 의도 범위를 지정하기 위한 단계별 지침은 여기를 참조하세요.
의도 범위 지정
그룹 노드를 사용하면 사용자가 그룹 내의 노드 중 하나에 있을 동안 사용자 발화에서 식별하여 실행 가능한 하위 의도의 범위를 지정할 수 있습니다.
- 의도의 범위를 지정하려는 그룹 위로 마우스를 올리고 설정(톱니바퀴) 아이콘을 클릭합니다.
- 그룹 노드 창에서 의도 추가를 선택하여 이 그룹의 범위의 일부가 되어야 하는 컨텐츠를 추가합니다.
- 의도 추가 창에서 이 그룹 노드의 하위 의도로 범위를 지정할 의도를 선택합니다. 이것은 대화가 이 노드 그룹의 어떤 노드에 있을 때 사용자가 요청할 수 있는 의도입니다. 예: 목적지 엔티티를 묻는 메시지가 표시되면 “XYZ 도시의 날씨는 어떻습니까“를 묻거나 여행 날짜를 묻는 메시지가 표시되면 “비행 시간”을 묻습니다.
- 의도 생성 버튼을 사용하여 새 하위 의도를 추가할 수 있습니다.
- 추가된 후에는 학습시킬 수 있고 동작 속성을 설정 및/또는 범위가 지정된 의도를 삭제할 수 있습니다.
의도 학습
각 하위 의도가 추가된 후에는 이 그룹 내에서 인식되도록 학습시킬 수 있습니다. 이를 통해 그룹의 컨텍스트에서 하위 의도를 식별할 수 있습니다.
- 그룹 설정 페이지에서 학습시키려는 하위 의도를 선택합니다.
- 다음을 통해 하위 의도를 학습시킬 수 있습니다.
- 기계 학습 – 이 하위 의도를 식별해야 하는 사용자 발화를 추가합니다. NER 접근 방법을 사용하여 발화에서 엔티티에 주석을 추가할 수도 있습니다.
- 패턴 – 사용자 발화에서 이 하위 의도와 관련된 패턴을 식별합니다.
- 규칙 – 의도를 트리거하는 의도 식별 규칙을 정의합니다.
- 의도 사전 조건을 설정할 수도 있습니다. 즉, 정의된 사전 조건을 의도 감지 시 컨텍스트에서 사용할 수 있는 경우에만 하위 의도가 식별됩니다. 이러한 사전 조건은 인스턴스 수준으로 여겨지며 구성 요소 수준 사전 조건보다 우선합니다.
의도 속성
이행 섹션을 사용하여 특정 하위 의도가 사용자 입력에서 식별될 때 조치를 정의합니다. 여기에는 다음 속성이 포함됩니다.
- 컨텍스트 변수 – 이 하위 의도를 식별할 때 업데이트할 세션 또는 컨텍스트 변수를 정의하도록 키-값 쌍을 설정합니다. 값을 재설정하려면 “null” 키워드를 사용해야 하며 공백은 플랫폼에서 무시됩니다.
- 메시지 – 선택적으로 이 하위 의도를 식별했을 때 사용자에게 표시할 메시지를 정의합니다. 다른 응답과 마찬가지로 메시지를 일반 텍스트, JavaScript 형식으로 정의하고 지정하고 해당되는 경우 음성 통화 속성을 설정할 수 있습니다.
- 컨텍스트 출력 – 이 의도가 식별될 때 설정할 텍스트 태그를 정의합니다. 의도 이름은 항상 시스템의 출력 컨텍스트로 설정됩니다. 값을 재설정하려면 “null” 키워드를 사용해야 하며 공백은 플랫폼에서 무시됩니다.
- 전환 흐름 – 이 하위 의도를 실행한 후, 대화 재개 방법을 정의하려면 이 옵션을 사용합니다. 다음 두 가지 동작을 정의할 수 있습니다.
- 노드로 이동 – 대화는 여기서 선택된 노드에서 재개됩니다.
- 대화 재개 – 대화는 이 의도가 식별된 노드에서 재개됩니다.
구현
다음은 그룹 내 하위 의도 동작의 변경 사항입니다
- 식별된 모든 하위 의도의 경우, 식별된 하위 의도 세부 정보를 포함하는 개체 배열이 있는 컨텍스트 개체는 맨 위에 있는 최신 항목으로 업데이트 됩니다. 다음 정보가 캡처됩니다.
- 하위 의도의 이름.
- 하위 의도와 함께 식별된 엔티티.
- 해당되는 경우 하위 의도가 속한 그룹의 이름.
- 하위 의도가 식별된 노드의 이름.
"identifiedSubIntents": [ { "intent": "Change Destination", "entities": { "destcity": "Delhi" }, "groupName": "Entity Group", "identifiedAt": "to_date" }, { "intent": "Weather Report", "groupName": "Entity Group", "identifiedAt": "destcity" } ]
- 사용자 발화에서 식별된 하위 노드가 그룹 범위에 있고 모든 입력 전제 조건이 충족되고 전환 흐름이 해당 노드로 향하는 경우 의도가 실행됩니다.
- 하위 의도의 실행은 다음을 수반합니다.
- 정의된 매핑에 따른 컨텍스트 변수 업데이트
- 정의된 매핑에 따른 출력 컨텍스트 설정
- 해당되는 경우 메시지를 사용자에게 표시
- 현재 대화 실행은 정의된 전환 흐름에 따라 계속되어야 합니다
- 지정된 노드로 이동하거나
- 하위 의도가 식별된 지점에서 재개합니다.
ノードのグループ化は、主として、ノードのグループを定義し、それをダイアログキャンバスで表現するために使用されます。それはダイアログフローの一部ではないことにご注意ください。グループノードは、フォローアップ、余談、エンティティ値の修正など、ユーザー体験を向上させるために使用することができます。ユースケースについてはこちらをご参照ください。
追加
ダイアログタスクにグループノードを追加するには、以下のステップで行います:
- グループノードを追加したいダイアログタスクを開きます。
- ノードをグループ化。ノードグループ化のステップについてはこちらをご参照ください。
- グループの名前変更、設定、または削除を行うことができます。
- ひとたび作成すると、特定のノードをグループに追加したり、グループから削除したりすることはできません。
- 追加したノードは、グループ外にも追加されます。
- 削除したノードは、ダイアログ全体からも削除されます。
- グループを削除しても、グループ内のノードはダイアログから削除されません。
ノードの設定
グループノードの機能には、以下が含まれています:
- インテントのスコーピング – ユーザーがグループ内のいずれかのノードで待機しているときに使用できるようにするサブインテントを定義する機能;
- サブインテントトレーニング – サブインテントをトレーニングする機能;
- サブインテントのプロパティ – サブインテントの動作を定義する機能。
インテントスコープを実現するためのステップバイステップの使用例については、 こちらをご参照ください。
インテントのスコーピング
グループノードを使用すると、ユーザーの発話から特定されること、およびユーザーがグループ内のいずれかのノードにいる間に実行されることができるサブインテントをスコープすることができます。
- インテントをスコープに入れたいグループをポイントし、設定(歯車)アイコンをクリックします。
- 「グループノード」ウィンドウから インテントの追加を選択し、このグループのスコープに含めるインテントを追加します。
- 「インテントの追加」ウィンドウから、このグループノードのサブインテントとしてスコープされるインテントを選択します。これは、会話がこのグループ内のいずれかのノードにあるときに、ユーザーが求める可能性のあるインテントです。例として、目的地のエンティティを聞かれたときにXYZ市の天気はどうですかと尋ねたり、あるいは旅行日を聞かれたときにフライト時間 を尋ねたりします。
- インテントの作成ボタンを使用すると、サブインテントを新しく追加する選択ができます。
- 追加されたインテントは、トレーニング、動作プロパティの設定、削除が可能です。
インテントのトレーニング
ひとたび追加すると、各サブインテントは、このグループ内での認識のためにトレーニングすることができます。これにより、サブインテントがグループのコンテキストの中で識別されることになります。
- グループ設定のページから、トレーニングしたいサブインテントを選択します。
- 以下の方法で、サブインテントをトレーニングすることができます。
- 機械学習 – このサブインテントを識別する必要のあるユーザーの発話を追加します。さらに、NERの手法を用いて、発話中のエンティティに注釈をつけることもできます。
- パターン – このサブインテントに関連するユーザーの発話のパターンを識別します。
- ルール – このインテントをトリガーするためのインテント識別ルールを定義します。
- また、 インテントの事前条件を設定することもできます。つまり、インテント検出時に、定義された事前条件のいずれかがコンテキスト内で利用できる場合にのみ、サブインテントが識別されることになります。これらの事前条件は、インスタンスレベルとみなされ、コンポーネントレベルの事前条件よりも優先されます。
インテントのプロパティ
フルフィルメントセクションは、ユーザー入力からこの特定のサブインテントが識別されたときのアクションを定義するために使用できます。これには、以下のプロパティが含まれています。
- コンテキスト変数 – このサブインテントが識別されたときに更新されるセッションまたはコンテキスト変数を定義するためのキーと値のペアを設定します。値をリセットしたい場合は、キーワード「ゼロ」を使用しなければなりません。プラットフォームはスペースを無視します。
- メッセージ – オプションで、このサブインテントが識別されたときにユーザーに表示されるメッセージを定義します。他の応答と同様に、プレーンテキストとしてのメッセージおよびJavaScript形式を定義することができ、該当する場合、音声通話プロパティを指定して設定することができます。
- コンテキスト出力 – このインテントが識別されたときに設定されるコンテキストタグを定義します。インテント名は、常にシステムによって出力コンテキストとして設定されます。値をリセットしたい場合は、キーワード「ゼロ」を使用しなければなりません。プラットフォームはスペースを無視します。
- 遷移フロー – このオプションを使用して、このサブインテントを実行した後にダイアログが再開する方法を定義します。定義できる2つの動作
- ノードへジャンプ – ダイアログはここで選択されたノードから再開します。
- ダイアログの再開 – ダイアログはこのインテントが識別されたノードから再開します。
導入
以下は、グループ内のサブインテント動作における変更です
- サブインテントが識別されるごとに、コンテキストオブジェクトは、識別されたサブインテントの詳細のあるオブジェクトの配列で更新され、最新のものがトップに表示されます。以下の情報がキャプチャされています。
- サブインテントの名前;
- サブインテントとともに識別されるエンティティ;
- 該当する場合、サブインテントが所属するグループの名前;
- サブインテントが識別されるノードの名前。
"identifiedSubIntents": [ { "intent": "Change Destination", "entities": { "destcity": "Delhi" }, "groupName": "Entity Group", "identifiedAt": "to_date" }, { "intent": "Weather Report", "groupName": "Entity Group", "identifiedAt": "destcity" } ]
- ユーザーの発話から識別されたサブインテントがグループスコープ内にあり、すべての入力事前条件が満たされ、遷移フローが当該ノードに向かう場合、インテントが実行されます。
- サブインテントの実行には、以下が含まれます。
- 定義済みマッピングによるコンテキスト変数の更新
- 定義済みマッピングのとおりに出力コンテキストを設定
- ユーザーへのメッセージの提示(該当する場合)
- 現在のダイアログの実行は、定義された遷移フローに従って継続されるべきです。
- 指定されたノードにジャンプします; また
- サブインテントが識別された時点から再開します。
Leave a Reply
Grouping nodes is primarily used for defining a group of nodes and representing the same in the dialog canvas. Note that it is not a part of the dialog flow.
The Group Node can be used to improve the user experience with follow-ups, digressions, and amending entity values. For a use case example, refer here.
Adding
To add a group node to the dialog task, follow the below steps:
- Open the Dialog Task where you want to add the Group node.
- Group the nodes. For steps in grouping nodes, refer here.
- You can rename, configure, or delete a group.
- Once created, you can not add or remove specific nodes from the group.
- Any node you add is added outside the group.
- Any node you delete is deleted from the entire dialog.
- Deleting a group will not delete the nodes within the group from the dialog.
Configure Node
The Group Node functionality includes the following:
- Scoping of Intents – ability to define the sub-intents to be made available when the user is waiting at any of the nodes in the group;
- Sub-intent Training – the ability to train the sub-intent;
- Sub-intents Properties – ability to define the behavior of the sub-intent.
For a use case example, with step-by-step instructions in achieving the intent scoping, refer here
Scoping of Intents
Using Group Nodes you can scope the sub-intents that are to be allowed to be identified from the user utterance and executed while the user is at one of the nodes within the group.
- Hover over the group you want to scope the intents for and click the settings (gear) icon.
- From the Group Node window, select Add Intent to add intents that should be part of this group’s scope.
- From the Add Intent window, select the intent to be scoped as sub-intent for this Group node. This would be the intent that a user might ask for when the conversation is at any of the nodes in this group. For example, asking “How is the weather at XYZ city” when prompted for destination entity or asking for “Flight times” when prompted for the travel date.
- You can choose to add new sub-intents using the Create Intent button.
- Once added you can train, set behavioral properties and/or delete a scoped intent.
Training of Intents
Once added, each of the sub-intent can be trained for recognition within this group. This would ensure that the sub-intent is identified in the group’s context.
- From the Group settings page, select the sub-intent you want to train.
- You can train the sub-intent with the following:
- Machine Learning – Add the user utterances that should identify this sub-intent. You can also use the NER approach to annotate entities in the utterances.
- Patterns – Identify patterns in the user utterance related to this sub-intent
- Rules – Define intent identification rules to trigger this intent
- You can also set the Intent Preconditions i.e. the sub-intent would get identified only when any of the preconditions defined are available in the context at the time of intent detection. These pre-conditions will be considered as instance levels and would take precedence over the component level pre-conditions.
Properties of Intents
The fulfillment section can be used to define the actions when this particular sub-intent is identified from the user input. It includes the following properties:
- Context Variables – Set the key-value pairs to define the session or context variables to be updated when this sub-intent is identified.
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform. - Message – Optionally, define a message to be presented to the user when this sub-intent is identified. As with other responses, you can define the message as plain text, JavaScript format, specify, and set Voice Call Properties, where applicable.
- Context Output – Define the context tags to be set when this intent is identified. The intent name is always set as output context by the system.
If you want to reset the values, you need to use the keyword “null”, spaces would be ignored by the platform. - Transition Flow – Use this option to define how the dialog should resume after executing this sub-intent. Two behaviors you can define:
- Jump To A Node – The dialog will resume from the node selected here.
- Resume The Dialog – The dialog will resume from the node where this intent was identified.
Implementation
Following are the changes in sub-intent behavior within a group
- For every sub-intent identified, the context object will be updated with an array of objects with the identified sub-intent details with the latest on the top. The following information is captured:
- Name of the sub-intent;
- Entities that are identified along with the sub-intent;
- Name of the group to which the sub-intent belongs, where applicable;
- Name of the node at which the sub-intent is identified.
"identifiedSubIntents": [ { "intent": "Change Destination", "entities": { "destcity": "Delhi" }, "groupName": "Entity Group", "identifiedAt": "to_date" }, { "intent": "Weather Report", "groupName": "Entity Group", "identifiedAt": "destcity" } ]
- The intent would be executed if the sub-intent identified from the user utterance is within the group scope and all the input preconditions are satisfied and the transition flow directs to the concerned node.
- The execution of sub-intent would involve:
- Updation of the context variables as per the defined mapping
- Setting the Output Context as per the defined mapping
- Presenting the message to the user, if applicable
- The current dialog execution should continue as per the transition flow defined
- Jump to the specified node; or
- Resume from the point where the sub-intent was identified.