I have a form which asks for a bunch of things that each need different clarification. for example if the form asks for a suburb an postcode it needs to check if they are a valid match before proceeding.
Currently in validate() i can do this check, set those slots to None again so the form knows to fill them, and issue the appropriate utterance. However, this will result in the form asking the original question again, on top of the situation-specific validation i already sent.
For example, in the validate() function I have python code which checks against a database and if not matches are found, it utters a message listing the top 3 matches. As it stands, Rasa will then ask again for ‘please enter address’ after this, which i would like to avoid.
I have played with UserUtteranceReverted() and so on but nothing seems to work, the FormAction will always replay that question no matter what.
I understand maybe i should do this in stories, but I feel like this would be quite complicated, as i would need stories showing how the form was interrupted, then have some custom actions maybe to do the parsing, and maybe a checkpoint to make sure it is looped over until complete.
I guess I could also just define a custom action that is called from within the form and which calls itself and sets/unsets slots until the condition is satisfied, but that seems a little wonky.