Sending response to users based on the detected intent

Hi. I’m trying out Rasa as an alternative to Dialogflow.

In Dialogflow, I can save a list of responses for an Intent. When that Intent is matched, Dialogflow sends a random response from the list of saved responses. I am having a hard time figuring out how to do this with Rasa.

I domain.yml file I can create responses with the same name of the intent. But when I test it with rasa shell I don’t get something from those phrases as the response.

The doc also mentions retrieval actions. It seemed perfect for handing the smalltalk intents from Dialogflow. But it doesn’t support defining multiple intents right now, so it won’t work me.

So, where should I add my response phrases which I want as a response to particular intents? Thanks

Hi @jahirft!

I don’t know about Dialogflow, but the equivalent of this in rasa would be to use mapping policy.

So you would map an utterance with an intent in your domain and the utterance can have multiple text in it (See variations in response). So when NLU will classify an intent, the core will directly predict the mapped utterance and will utter one of the text under that utterance at random.


You can train multiple response selectors. See multiple retrieval actions

Hope that helps. :slightly_smiling_face:

I’m currently planning to use Mapping Policy but it’s quite cumbersome.

If I understand correctly, Multiple Retrieval actions is not about providing multiple responses to the same intent. One retrieval action is enough for me, so it won’t work for me in this scenario.