Prevent Repeating Intents

After matching with a certain intent, how can i make sure to never match with this intent ever again in my conversation? How can do I this for multiple intents?

I don’t think that this is currently possible. May I ask what your use case is?

I’m doing a bot to ask for donations. After I pitch the donation, I don’t want to ever repeat this exact pitch. Also when I offer numbers like $75/65 and they reject, I want to offer lower numbers like $25/15. I don’t ever want to go back to offer higher numbers.

I guess, you could do something like this: Put your pitch for donation in a custom action. You could connect this action to some kind of light-way storage. Before you actual respond something to the user, you check in the storage if the action was already executed. If so, you trigger a fallback, otherwise the pitch is shown to the user. You could do a similar thing for the other use case. Would that work?

Is there a way for me to set boolean variables, check the intent classification ranking. and depending on the variables, pick the 2nd highest ranked intent? What performance issues would I experience with this? What would be the best way to do this?

You can get the latest events including the intent ranking by executing tracker.current_state(). You can also use slots for storing if an action was already executed or not. This can also be done in your custom action, e.g. SlotSet("pitch_given", True). I don’t think that this will cause you any performance issues.