Monitoring conversation state

I’m trying to monitor conversations to know when I should help users get back on track. e.g., if they interrupt a flow with smalltalk then the first time I might not want to reiterate the previous question. But after a few consecutive smalltalk interactions, I might want to remind them where we were before.

Not sure this is the right way to ask the question, but is there a way to hook into event loop (without normal actions/forms) so I can see, say, that the last 3 user utterances were smalltalk.

Hi @mmm3bbb. You could, for example, use a two-stage fallback policy (see Fallback Actions), or use the filter (top right corner) of the conversations tab in Rasa X to find conversations that trigger a certain action.

You could also define a slot that counts how often a certain custom action was triggered (just increase its value upon the call of that action), and then trigger a unique FollowupAction, which you could find with Rasa X, once a threshold is reached.

Thanks @j.mosig. Adding a slot and incrementing that is great, but it requires that a custom action be triggered. I also wanted to track non-custom actions. Was hoping there was some sort of callback on every Rasa request I could hook into and not just for custom actions.

In the meantime, I’ve created a custom connector that allows me to analyze the events after each turn. So I’ll try putting the logic there.

hi michael - you could use interactive learning to create some example stories where this occurs and then add those to your training data. Especially with the new embedding policy (1.3.0 and later) this should work quite well.