I am using Botfront to develop a chatbot project with Rasa. Users ask faq questions.
I answer their answers in two different formats. the first one is rule based with buttons, the second one is with rasa’s classic question and answer nlp format.
In other words, users enter their questions and I match them with intents and give a single answer.
My question is that the user enters input, for example “annual leave”. Instead of returning the direct answer, the bot should display all the intents in the database that contain “annual leave” quick reply
and let the user see the answer to the question he chooses from among them when the user selects it.
In other words, I want to do a kind of full text search.
How do I do this. where should I intervene in the codes.
In many cases, this would be implemented as an nlu fallback.
There’s a good example of prompting the user for which question they are asking after a fallback here.
Thank you for your answers. but the issue I want is not about fallback. I want to automatically search all questions without nlp according to the keyword entered by the user and show him all the questions in which the keyword is mentioned in a dynamic way. in fact, I wanted to ask how I can do a kind of full text search feature. when I do this, I probably won’t use nlp because there will be conflicts.
If it has this feature, I thought I should write a custom actionsa py script. but I don’t know if I should call the script out of the normal action or do it differently. I wanted to ask exactly this issue.
You may be better off looking at Elastic Search or Haystack.
Thank you for your answer. I will try the answer you mentioned. As a different question, we keep users’ inputs in one place. Apart from defining intent, domain and responses, does the rasa model automatically learn to determine the most correct answer based on the answers it receives from the inputs in the chat?
Otherwise, we define users’ input as intent and train the model ourselves, our error rate will decrease?