Hi, I’m new to Rasa and trying to figure out the concepts and best practices. From my understanding the intent detection process is completely separate from the dialog/context management process - am I correct?
If so, that means that the intent detection does not include any context and every user input must map to just one intent. This is a very limiting constraint, and I’m not sure how to model many conversation flows - especially question-oriented conversations where the answers can be short/generic.
How would you model the following conversation?
User: Hi, I want to take your quiz
Bot: OK. First question: Do you like cats?
User: yes
Bot: Do you have a cat?
User: I have two cats
The problem is that for the second question, the user may respond with “yes” instead. So it looks like there should be a shared intent between these answers. However, the utterance “I have two cats” is not a logical answer for “Do you like cats?”, so I can’t just create an intent with both of these examples.
It doesn’t seem possible to elegantly solve this problem without using context information in the intent detection phase. Is there a solution I’m missing? What is the accepted way of handling short/generic responses, where the meaning is derived from the context?
. Yes you’re right, intent detection only works on the basis of the single user utterance and is run before the dialogue manager. The DM then takes the past state of the conversation and current NLU output in order to predict the next action the bot should take. (The exception to that is the currently experimental End-to-end TEDPolicy, which predicts both intents and actions, see. e.g.