So I was trying to replicate the unhappy path behavior for chitchat during a large form, as specified in the docs. I defined some rules and stories to support this behavior and in the run()-method of the FormValidationAction I am implicitly raising a
ActionExecutionRejection by not returning any SlotSets.
Until here, everything works fine: The form is rejected when I want it to and the chitchat is handled as defined in the stories. But once I want to return to the form, there are some issues. The form is activated again and rasa correctly chooses the FormAction, but it seemingly does not communicate with my Action Server (rasa sdk) and the FormValidationAction that is specified there anymore, but simply decides which slot to ask for next based on the slots in the domain, without ever calling the custom required_slots()-method I defined. This is a major problem, as my required_slots() dynamically skips some of the predefined slots from the domain file, which rasa obviously does not know, so the bot asks for these slots again, effectively breaking the form.
Unfortunately I have not found any way to make rasa contact the action server in this case. Is this intended behaviour? And if so, how can I change my approach to allow me to continue with the form appropriately?
- story: start search steps: - intent: request_search - action: couch_requirements_form - active_loop: couch_requirements_form - checkpoint: checkpoint_search_ongoing - story: handle mid-form chitchat steps: - checkpoint: checkpoint_search_ongoing - intent: conv_chitchat - active_loop: null - action: utter_chitchat - active_loop: couch_requirements_form - action: couch_requirements_form
- rule: Answer chitchat steps: - intent: conv_chitchat - action: utter_chitchat wait_for_user_input: false
Excerpt from the form action definition:
forms: couch_requirements_form: req_size_num_persons: - type: from_entity entity: custom_number req_size: - type: from_intent value: frei intent: conv_dont_know req_size_width: - type: from_entity entity: custom_number role: size_width ...
Rasa Version : 2.1.0 Rasa SDK Version : 2.1.2 Python Version : 3.8.5 Operating System : Windows-10-10.0.18362-SP0