How to deal with story structure conflict in this case?

Running “rasa data validate” I get the following error:

Story structure conflict after intent ‘Kids_refuse_to_do_the_work’: utter_If_we_stop predicted in ‘story_6.0’ utter_What_has_happened predicted in ‘story_13.0’

Stories themselves are the following:

  • story: story_6.0 steps:

    • intent: Kids_refuse_to_do_the_work
    • action: utter_If_we_stop
    • intent: Repeatedly_boycotting_the_course
    • action: utter_I_may_be_forced
    • intent: Violent_messages
    • action: utter_Good_luck
  • story: story_13.0 steps:

    • intent: Kids_refuse_to_do_the_work
    • action: utter_What_has_happened
    • intent: Violent_messages
    • action: utter_There_is_no_need

So, does this mean that I can’t create stories that contain different actions for the same intent? The examples from algorithm dashboard contained such situations :c.

My config.yml is default, rules.yml is empty.

Yes, you cannot set two actions for a same intent.

As the bot cannot predict the future (story), there is no way for it to know how to respond to this intent.

If you want the bot to randomly give an answer to this intent, you could do it inside a Custom Action.

Thanks for commenting,

This video on TED policy mentions project with stories.md that uses different actions after the same intent

video: Rasa Algorithm Whiteboard - TED in Practice - YouTube (see 2:36)

project mentioned in video: https://github.com/RasaHQ/rasa-ted-demo

Does this mean that RASA tutorials provide irrelevant and wrong information, or am I missing something?

Ah, nice observation :slight_smile:

If you’re talking about the confirm intent that is followed by different actions each time, this is different from what you mentioned - There, the confirm intent is preceded by different actions each time, whether in your example, there is nothing preceding Kids_refuse_to_do_the_work.

For example, this wouldn’t work

- story: story 1
  - intent: first_intent
  - action: utter_first

- story: story 2
  - intent: first_intent
  - action: utter_first_bis

but this would

- story: story 1
  - intent: greet
  - action: utter_greet
  - intent: first_intent
  - action: utter_first

- story: story 2
  - intent: inform
  - action: utter_thanks
  - intent: first_intent
  - action: utter_first_bis

and again, this wouldn’t

- story: story 1
  - intent: greet
  - action: utter_greet_first
  - intent: first_intent
  - action: utter_first

- story: story 2
  - intent: greet
  - action: utter_greet_second
  - intent: first_intent
  - action: utter_first_bis
1 Like

Thanks Chris!

This makes sense, I wonder why I missed this logic

1 Like