Supervised Response Selector [Experimental]

I’ve followed the article and implemented everything and get this error:

Any help?

Hey @rasafan, you have not written the responses properly in responses.md file.

It should be in this way:

## greet
* ask_faq/greet:
  -  Hey! Can I help you with something?

Reference:

https://rasa.com/docs/rasa/core/retrieval-actions/#training-data

https://github.com/JiteshGaikwad/Restaurant-Search-Bot/blob/master/data/responses.md

let me know if this helps you. :slight_smile:

1 Like

I definitely need the feature in Rasa X too. +1

Currently, if I upload the nlu.md file using Rasa X HTTP API, all my chitchat intents get merged and then respond_chitchat is unable to retrieve responses.

I patched rasa/data.py to load a static responses.md file, but it does not help.

# grep opt /usr/local/lib/python3.6/site-packages/rasa/data.py
    nlu_data_files = set(["/opt/responses.md"])
    nlu_data_files = set(["/opt/responses.md"])

Static /opt/responses.md content:

# head /opt/responses.md 
## ask_1
* chitchat/ask_1
  - La temporalité ne s'applique pas réellement à moi

## ask_2
* chitchat/ask_2
  - Je suis plus efficace dès lors qu'il s'agit de répondre à des questions

The supervised response selector and retrieval actions is an excellent feature in Rasa. At my place we prefer different response selector intents instead of just one and we definitely want to see this feature in Rasa X

Can response actions have custom information (besides “text”), just like normal messages?

@dakshvar22

I have the same request, see:

Hey! Can I use a custom action as a response selector response?

Best

What type of model does response selector use. Is it a simple feed forwared network with the sparse and dense features as input ?

@dingusagar I am not an expert, but from what I understand, the response selector is based on DIET, which uses a transformer. In rasa 1.x it goes directly from input text to response text, in rasa 2.x you can also use the response intents also (there is an option), so multiple responses are supported.

From the tests I have done, response selector seems to dislike dense representations. In all the tests I have done, the best features are the ones from CountVectorsFeaturizer (using words, not characters).

1 Like

Lets say I have a response selector model for chitchat intent with different variations of chitchat and their responses configured. I noticed that the response selector model in the pipeline gets executed even if the predicted intent from the DIET classifier is not chitchat.

Would like to know the design thought process behind this behaviour. Would’t it be better if the response model in the pipeline gets executed only if the predicted intent is the one to which response selector was configured for. @dakshvar22

In the above example, if predicted intent is not chitchat, what is the need for unnecessarily executing the response selector in the pipeline. Is it not an unnecessary overhead ?