Building a FAQ bot

Hi all,

I have built a FAQ bot on cyber security using AIML. I want to convert it to the rasa stack for actually using machine learning. What do I have to do to do this? The way I see it, I need to do the following.

  1. Define intents and entities. I have a series of cyber security related questions for which I will create an intent like “securityquestion”. The questions are like what is cyber security who or what is a hacker how do I learn to hack
  2. I need to define entities. However, I am not sure what an entity would be here. Would every noun be an entity?
  3. I do have responses that the bot should give. I am happy to use rasa core. Do I then need to create a separate story file or is there some other way for me to add the responses to the questions? The problem with creating a story file is that it apears to rely on indentation. Am I wrong?
  4. If the bot cannot find an answer, it should try looking it up. I suspect I will need some kind of custom action but I am not sure.

Please advise.

hey @pranav might be i can help you in some way, just check my github rep on FAQ Bot :slight_smile:

original source :

Hi Jitesh, Many thanks for the link to your bot. How are you mapping the questions to their answers? In my case, each question has a specific answer.

i am mapping the answer based on the intent name

So in your stories file, You define a dialogue for the bot! like:


  • greet


  • what_can_you_do

    • utter_what_bot

So basically you define the kind of action you want the bot to do! May it be a default answer or a custom action which will include some API or other links to db. Happy coding! :slight_smile:

Hey @Akshit you can have a look at my stories @

hey! I looked at the sara bot! I’m kinda not sure how formaction is used! Do you have a example in your bot for that? I just need the workng example so I can similarly add that in my bot!

hey @Akshit as of now i dont have any example to show

Hey @pranav You can ask me if you have any other questions in the working! I would suggest that just try the weatherbot or any other example given by the community and get the idea about the flow in RASA.!

No issues! Maybe someone else can help!

hey! @JiteshGaikwad can you help me with one of these maybe I’m kinda stuck!

  1. So if a user enter today,tomorrow or like last month how would i convert it into a valid input! store into slot?
  2. So I have added a list of names in lookup table and placed it in my data folder, Now when I train the nlu and try to search for a name, that is in the lookup table but not in my nlu data, it doesn’t get detected as an entity.
  3. formaction is one :slight_smile:
  4. after the completion of a conversation I need to store all the story inside a file.?

thanks Jitesh and Akshit. I have added some questions to a json file and have used rasa_nlu to classify intents. I need a way to return some responses to the user. I am checking out the examples in the documenattion.

Yeah just create a domain file and a story data file. Train the more model. There is no need to add custom actions if you want a default answer everytime. Just for learning part you can use templates!

Hi all, I did some work yesterday and have my json training data using the rasa-nlu-trainer tool. I have over 50 questions but their intent is the same because the bot has to output specific answers. For example, what is a hacker and what is cyber security? Both these questions have an intent of “security_question”. So, how do I get the bot to select the right response if there is the same intent across queries?

So when the intent gets detected as “security_question” Let’s say you call an action_security custom action okay! So now you have to tell the bot that for " a" you have to run func1 and “b” you have to run func2. I think only way to do this is to store hacker or cyber security into an entity and so then in your custom action based on the entity taken from tracker you can tell the bot to utter a template or do anything,

BUT! I think it’s if you define a different intent as a whole for this! and define a default template for that question! I’m also trying to find a solution for this! I’ll let you know If I find one!

Github FAQ-Bot link is broken

Hello, we build a faq bot based rasa, it can work well in some simple environments.

Hi all, Many thanks for all the responses. So, the way I understand things, I use the NLU component to capture intent and then use custom actions to actually match questions to answers in my database. Am I correct?

My situation has changed a bit since I posted this question over a year ago. I have about 42000 questions and answers and can add more. I had tried sequence to sequence modeling but that needs more memory and resources that I can allocate so I am back to see if rasa can help.


Retrieval Actions Look at this

Thanks Nick. I see one problem. The documentation states: predict. All retrieval intents have a suffix added to them which identifies a particular response text for your assistant, in the above example - ask_name and ask_weather. The suffix is separated from the intent name by a / delimiter

How do I create these suffixes? I have a huge list of questions and answers and am not in a position to read all the data and tag it.