I’m trying to invoke a rule from “action_nlu_fallback” through UserUttered(“some_text”,{“intent”: {“name”: “xyz”, “confidence”: 1.0}}) as return event. I am able to see in the logs, that the nlu core is able to extract the intent as expected (i.e intent: ‘xyz’). But the issue here is that, instead of invoking corresponding rule related to the parsed intent, rasa core is always predicting next action is “‘action_listen’”. so what changes do i need to do, so that it will trigger corresponding rule/story for the parsed intent ?
Logs:
[state 5] user intent: nlu_fallback | previous action name: action_listen
[state 6] user intent: ask_if_bot | previous action name: action_handle_nlu_fallback
2021-01-27 08:28:08 DEBUG rasa.core.policies.rule_policy - There is no applicable rule.
2021-01-27 08:28:08 DEBUG rasa.core.policies.ensemble - Predicted next action using policy_1_TEDPolicy.
2021-01-27 08:28:08 DEBUG rasa.core.processor - Predicted next action ‘action_listen’ with confidence 0.95.
So what i can see in the rasa logs is, the rasa’s NLU server is able to detect the intent name, but it is not able to predict the action/story corresponding to that intent (i.e ‘xyz’)
LOGS:
[state 5] user intent: nlu_fallback | previous action name: action_listen
[state 6] user intent: ask_if_bot | previous action name: action_handle_nlu_fallback
2021-01-27 08:28:08 DEBUG rasa.core.policies.rule_policy - There is no applicable rule.
2021-01-27 08:28:08 DEBUG rasa.core.policies.ensemble - Predicted next action using policy_1_TEDPolicy.
2021-01-27 08:28:08 DEBUG rasa.core.processor - Predicted next action ‘action_listen’ with confidence 0.95.
Instead it is predicting “action_listen” is the next action for that intent (which is not true, since I’ve a rule mapped to that particular intent (i.e “xyz”)
- rule: Show all supported services
steps:
- intent: supported_services
- action: utter_service
So how can I trigger a story/rule, which is corresponding to the intent , that was sent from UserUttered event ?
Cool, thanks.
Yes, I think that doesn’t work. Have to think for an explanation, though. But why do you want to insert a user intent in this way? I think a better approach would be
So your action_handle_nlu_fallback evaluates things and sets a slot fallback_intent. The rule then applies only if fallback_intent was set to supported_services.