I am facing a problem regarding rules for a form. I have a form, ok with happy paths, I cannot get the unhappy paths working (i.e. the user has requested to stop, the user has insulted the bot, and the user has used chitchat). Initially I tried to user rules, never managed to remove contradictions, then switched to stories, “rasa data validate --max-history 20” passes, but again contradictions during training. Finally, I used “rasa interactive” (which is not easy if you have a lot of utter_*, the list is large), and created the stories with rasa interactive: The stories I got (I have removed some slots, as forms do not work well in rasa interactive) are:
During training, I get the following error: (rasa validate reports no error)
InvalidRule:
Contradicting rules or stories found ??
the prediction of the action ‘action_deactivate_loop’ in story ‘flight departure information - unhappy path - insult - en’ is contradicting with another rule or story.
the prediction of the action ‘action_deactivate_loop’ in story ‘flight departure information - unhappy path - insult - el’ is contradicting with another rule or story.
How can I resolve this contradiction?
In my domain, I have:
language:
type: categorical
values:
- el
- en
influence_conversation: true
Since the language slot has a different value, why are the rules contradicting?
the prediction of the action ‘action_deactivate_loop’ in story ‘flight departure information - unhappy path - insult - el’ is contradicting with another rule or story.
While this is no long term solution you might want to turn off the contradiction check and see if the stoies work as expected (preferably by MemoizationPolicy). If they do so it might be a bug.
@Ghostvv No, they don’t. All the rules are listed two messages above. One rule for activating the form, one for deactivating it, and one for resetting slots after “submit”.
Ok, I understood, you are talking about the rules outside the form, where I map insults/chitchat to answers.
These were automatically created by the migration, as I had in the domain triggers.
I think you have found the cause. Adding this condition to all the rules that were produced during the migration from rasa 1.x to 2.x, and my form rules are not anymore in conflict!
Thank you!
(Maybe it is a good idea rasa data convert to use the condition when migrating files?)