IBM/watson-assistant-slots-intro

Conversation flow does not handle "No" extra toppings and does not reset

Closed this issue · 0 comments

The #help handler set within the Pizza ordering node prevents the correct processing of a "no" response to extra toppings (entity @extra_confirmed:no) in the dialog slot. The current trained model created after the workspace is built matches a "no" response to the #help intent and returns the handler message instead of going to the correct "Not Found" item for the slot with a response based on the entity value. Example:

no_topping

The #reset handler set within the Pizza ordering node responds to confirm it will start over, but since the Reset node is never called, the attributes of the $pizza_ ... context variables are not reset and the slot dialog just continues.

reset_fail

Suggested fix:
By changing the default Digression processing for the Pizza ordering node, the #reset message handler can be eliminated entirely and allow the intended flow of the dialog to work for reset. Open settings on the node and select Digressions. Change the default to allow digressions from the node. Don't check "Only digress to slots that allow returns". Then delete the #reset handler in the Pizza ordering node.

One approach to better handle a "No" topping response after marking the Pizza ordering node as allowing Digressions to block digressions into the Fallback node. Then delete the #help handler in the Pizza ordering node. A drawback is that any ordering help apart from the slot prompts is lost, but this seems better than having the user stuck in an endless loop when trying to order a margherita pizza with no other toppings.