Bug when returning multiple FollowupAction events in action

Right, but when you do dispatcher.utter_template("utter_can_do_X", tracker), it also doesn’t get logged in the tracker state (AFAICS), and therefore can’t affect the following predicted actions. So, I could get the unwanted following behaviour:

Dialogue 1 (correct):

  • get state of item X
    • state of item X is Y1
    • You can do Z to X, would you like to? (not logged in tracker)
  • yes
    • ok, did Z

Dialogue 2 (erronous):

  • get state of item X
    • state of item X is Y2
    • You can’t do Z to X (not logged in tracker)
  • yes
    • ok, did Z

Basically I need some state to steer the actions, whether it’s a slot or what the bot has uttered/actioned. What would you recommend - going back to the initial approach of using logic in the first action to set a slot value, and then predicting the following action/utterance depending on the slot value? Or refine the approach of using logic to enforce next action/utterance, and make sure that it’s logged in the tracker?

I am aware that maybe I was too quick to resort to these deterministic measures (FollowupAction etc.) instead of adding training stories.

1 Like