NumMenu Bot
NumMenu Bot is an example chatbot showing a way to design a number-based menu assistant with Rasa. This type of bot is very useful on platforms like Whatsapp where buttons may not render well. The goal is to give some design ideas and the bot could be further optimized.
Feel free to contact me on Twitter to share your ideas or discuss.
Table Of Contents
Install dependencies
Run:
pip install -r requirements.txt
Run the bot
Use rasa train
to train a model. It is also possible to generate training data for scenarios (stories) by using interactive learning with the command:
rasa interactive -m {path_to_a_model}
If there is no model already trained, you can remove the argument. Rasa will train the model with actual data.
Then, to run the bot, first set up your action server in one terminal window:
rasa run actions
In another window, you can talk to the bot by running:
rasa shell --debug
It is also possible to do the two above with a single command:
rasa run actions & rasa shell --debug
Note that
--debug
mode will produce a lot of output meant to help you understand how the bot is working under the hood. To simply talk to the bot, you can remove this flag.
Overview of the files
data/stories.yml
- contains stories
data/rules.yml
- contains rules
data/nlu/
- contains NLU training data
actions/actions.py
- contains custom action/api calls code
domain.yml
- the domain file, including bot response templates
config.yml
- training configurations for the NLU pipeline and policy ensemble
Things you can ask the bot
The bot is based on the mood bot to which has been added a menu that appears when you greet it. The menu offers a list of Deep Learnig frameworks and displays a small description of the chosen framework based on this article from Maruti TechLabs. From there, you can use the option numbers to choose a framework.
The bot does not support a natural language formulation of any of the options. Only the choice through numbers is supported.
Don't forget to leave a star if it was useful to you
Contributing
Feel free to make a PR or report an issue