Time and again, we come across situations wherein the users change their preferences during task execution.
For example, while booking a flight, the user might change the date of travel and at times even the destination.
Amend Entity is a feature for such scenarios. Using this feature, you can allow the users to amend entity values and also control the post-amendment dialog behavior.
The entity amendment process can be divided into three stages:
- Amend Identification: Identifying that the end user wants to amend is driven by bot’s built-in NLP capabilities.
- Amending Entities: On identifying the intention to amend, the current task is put on hold and the amend flow is triggered. Three kinds of amend flows are possible based upon the user utterance:
- when the user refers to the entity name (or entity synonyms), then they will be prompted for the entity value. For example, user utterance “I want to change the destination” triggers the prompt for destination entity. If the same entity node is present multiple times in the dialog, then the latest entity node for which the user has already provided input will be amended.
- when the user gives the entity value then the entity will be updated accordingly. For example, user utterance “I want to fly to JFK” changes the destination entity value. If the value is compatible with two or more entities in the dialog, then the user will be prompted to select an entity to amend.
- when the user refers to both the entity and its value, then the entity is updated. For example, user utterance “change my destination to JFK” will change the destination entity value.
- Post Amendment Behavior: After an entity is successfully amended, there are three possible dialog execution flows that your bot can be configured for:
- The dialog can be re-executed from the node that is amended by evaluating that entity’s connections.
- The dialog can resume from the node where amend was identified or made.
- The dialog can be resumed from a specified node present in the dialog.
Notes:
- This feature has been introduced in v6.4 release
- This feature is not supported in all languages, see here for details.
Implementation
On the Kore.ai platform, Amend Entity behavior can be defined at two levels:
- Bot level, and
- Task level.
Bot Level
To Set Bot Level Amend Entity Behavior
- From Natural Language -> Intelligence option select Amend Entity. By default amend entities is disabled.
- Once you Allow amend entities, various Dialog Resumption options are available:
- Re-execute dialog from amended entity – use this option to resume the dialog by evaluating the amended entity’s connections. You can further choose to:
- Clear entity values captured downstream – to clear all entities captured between the identified entity and the amend
- Skip display of previously displayed messages – messages from Message nodes alone.
- Resume dialog from amend identification node – use this option to resume the dialog from the node where the amend was identified.
- Re-execute dialog from amended entity – use this option to resume the dialog by evaluating the amended entity’s connections. You can further choose to:
- Post rel 8.0 of the platform, the amend process can be extended to entities marked as Do not ask the user for input using the Amend Entities set as Do not ask the user for input option.
Task Level
To set Task Level Amend Entity Behavior
Amend entity behavior can be set at the Task level also. The configurations defined at the task level will override the bot level configurations.
- From the Dialog Task page, click the Ellipses icon and select the Manage Amend Behaviour.
- This opens the Manage Amend Behaviour dialog.
- By default, Use bot level settings is selected and the Bot level setting is displayed
- Select Customize for this task to override the Bot level settings
-
- Do not allow amend entities will not allow the user to amend entity values for this task,
- Allow amend entities will further give you three Dialog Resumption options:
-
- Re-execute dialog from amended entity – Amend entity behavior can be set at the Task level also. The configurations defined at the task level will override the bot level configurations.
- Clear entity values captured downstream – to clear all entities captured between the identified entity and the amend
- Skip display of previously displayed messages – messages from Message nodes alone.
- Resume dialog from amend identification node – use this option to resume the dialog from the node where the amend was identified.
- Jump to a specific node in the dialog – use this option to select a node from the current dialog where the task flow needs to jump. You can use this option to add custom behavior before resuming with the dialog. Context object will contain the details of the entities amended, along with the previous and current values. You may use this information to customize the dialog
- Re-execute dialog from amended entity – Amend entity behavior can be set at the Task level also. The configurations defined at the task level will override the bot level configurations.
-
- Post rel 8.0 of the platform, the amend process can be extended to entities marked as Do not ask the user for input using the Amend Entities set as Do not ask the user for input option.
-
Triggers
The following are patterns supporting the Amend Entity behavior. User utterance around these patterns would trigger Amend Entity.
~amend_synonyms <entity_name> from <old_value> to <new_value>
For example, “change the departure date from today to tomorrow“.~amend_synonyms <entity_name> [to as from with] <new_value> [instead_of rather_than not] <old_value>
For example, “modify departure date to tomorrow instead of today“.~amend_synonyms <entity_name> <old_value> [to as with] <new_value>
For example, “replace departure date with tomorrow“.~amend_synonyms <entity_name> from <old_value>
For example “alter departure date from today“.~amend_synonyms <entity_name> [to as from with] <new_value>
For example, “modify departure date to tomorrow“.~amend_synonyms {from} <old_value> [to as with] <new_value>
For example, “change from today to tomorrow“.~amend_synonyms [to as from] <new_value> [instead_of rather_than not] <old_value>
For example, “change to tomorrow instead of today“.~amend_synonyms [to as from] <new_value> instead
For example, “change to tomorrow instead“.~amend_synonyms [([it that this] {to}) it that this to] <new_value>
For example, “change it from today to tomorrow“.~amend_synonyms <entity_name>
For example, “amend departure date“.~amend_synonyms <old_value>
For example, “change today“[to as from] <new_value> [instead_of rather_than not] <old_value>
For example, “to tomorrow instead of today“[to as from] <new_value> instead
For example, “to tomorrow instead“
In the above-mentioned patterns the concept ~amend_synonyms
includes "amend", "change","modify","alter","update", "replace", "make", "move", "upgrade", "want"
.
Note that the user can use these patterns to change multiple entity values. For example, “Change the departure date from today to tomorrow and departure city to Chicago” would result in the changes to both departure date and city.
Additional Notes
- Amend functionality is not applicable for universal bot’s default language. However, when a linked bot is in progress, amend settings of the linked bot will be honored.
- Identification of the amend requests is driven by the platform’s in-built training data and it is currently supported only for the Dialog task conversations in English.
- The scope of this feature currently includes only the replacement of previously populated entities. It does not include other scenarios like partial modifications, deletions, additions to entity values.