I have a problem cotinuing continuing the conversation after a checkbox. I included - form{"name": null}
in stories as the Rasa support proposed, as well as slots set by custom actions, as it should be done according to the documentation. Still, the story won’t continue after a checkbox. In the logs, we recieve the following message:
2019-08-24 10:01:27 DEBUG rasa.core.policies.memoization - There is no memorised next action
2019-08-24 10:01:27 DEBUG rasa.core.policies.mapping_policy - There is no mapped action for the predicted intent, 'slot'.
2019-08-24 10:01:27 DEBUG rasa.core.policies.form_policy - There is no active form
I don’t know how to deal with the intent slot
.
Here is how the story looks like currently:
## first_bot_node6
>check_first_bot_node5
* first_bot_node6
- utter_first_bot_node6
- first_bot_node6_form
- form{"name": "first_bot_node6_form"}
>check_first_bot_node6
## first_bot_node87
>check_first_bot_node6
- slot{"ShortTermCreditExemption": 1}
- form{"name": null}
- first_bot_node39
* first_bot_node87
- first_bot_node87
- result
* return_to_start
- return_to_start_action
>return_to_start
Here is how first_bot_node6 and first_bot_node39 do:
class FirstBotNode6Form(FormAction):
def name(self) -> Text:
return "first_bot_node6_form"
def required_slots(self, tracker: Tracker) -> List[Text]:
return ["FirstBotNode6List"]
def submit(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any],
) -> List[Dict]:
return_value = []
redirect_stack = RedirectStack(tracker)
result = tracker.get_slot("FirstBotNode6List")
if result[0]:
tracker.slots["ShortTermCreditExemption"] = 1
return_value.append(SlotSet("ShortTermCreditExemption", 1))
redirect_stack.push(self)
else:
tracker.slots["ShortTermCreditExemption"] = 0
return_value.append(SlotSet("ShortTermCreditExemption", 0))
# ... more if statements here ...
redirect_stack.pop()
return_value.append(FollowupAction("first_bot_node39"))
return return_value
class FirstBotNode39(Action):
def name(self) -> Text:
return "first_bot_node39"
def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any],
) -> List[Dict[Text, Any]]:
#.. some if statements here ...
if (tracker.get_slot("ShortTermCreditExemption") == 1 and tracker.get_slot("ShortTermCreditExemption_Passed") is False):
return_value = []
return_value.append(SlotSet("ShortTermCreditExemption_Passed", True))
return_value.append(FollowupAction("first_bot_node87"))
return return_value
Can somebody help me?