In fact, here’s an example for a required_slots method in a FormValidationAction in Rasa 2:
async def required_slots(
self,
slots_mapped_in_domain: List[Text],
dispatcher: "CollectingDispatcher",
tracker: "Tracker",
domain: "DomainDict") -> Optional[List[Text]]:
if tracker.slots.get('feedback_00_authorisation') is False:
return []
else:
return slots_mapped_in_domain
For your use case, you could:
- create a
confirm_entityboolean slot, set it toFalseby default, but - make it
Truewhen you’re using your similarity measure invalidate_hospital_name - If
confirm_entityisTrue, modify the slots required (inrequired_slots) in order to ask a confirmation question - Revert
confirm_entitytoFalsewhen you’re done validating, and carry on with the form