Basic Overview
Rasa Talk is a Dialog Management tool built on top of Rasa NLU. It was built out of a desire for a open source on premise dialog management system. Originally inspired by Rasa UI inspiration was taken from watson conversation.
Rasa Talk can be used as just a training data generator but can also hook your chatbot up to Facebook/Telegram/Skype/Slack whatever!
Feel free to message me on
Demo
https://www.talk.jackdh.com (User: [email protected] Pass: demo1234)
Installation
Prerequisites
- Database: Mongodb - You can run this locally or online like mlab
- Chatbot Brain: Rasa NLU - I recommend running with Docker
git clone https://github.com/jackdh/RasaTalk/
Rename example.env to '.env'
Update the variables to include your MongoDB server IP and Rasa NLU IP.
yarn
yarn start
Docker
Update .env
or docker-compose.yml
with selected environment variables. (Mongodb volumes do not work on windows)
docker-compose up
Or view https://github.com/jackdh/RasaTalk/wiki/Setup for a more detailed setup guide
Up and Running
- Update .env with correct environment variables.
- Create a new user
- Add a new Agent
- Add some intents to the agent
- Add some expressions to the intents.
- Add entities if required.
- Start training the model
- Create a dialog node which is recognised by either and Intent or Regex.
- Populate the rest of the node
- Test it out on the right!
Features
Facebook / Skype / Third parties.
Due to the constumisable nature of RT it's possible to hook it up to practically any third party chatbot you'd like. For starters I've included a quick example of how you might use [Botkit](https://github.com/howdyai/botkit) as a middleware to get to Facebook
Both Facebook and Telegram can be easily setup within the app Check out the telegram setup wiki for more information!
Generate Rasa NLU Training Data
- Agents - Create multiple agents to host multiple chatbots from one backend.
- Intents / Expressions - Build multiple varied expressions within the agents either manually or with the variant generator.
- Entities - Create multiple entities with their synonyms.
- Entity insertion - Highlight to insert entities into expressions
Dialog Management
- Watson Conversation style dialog management.
- Regex based or Intent based recognition.
- Dynamic recognition with multiple Intents or Entities ie: #intent OR @entity
- Smart contextual awareness
- Slot Filling with default slot or prompting
- Multiple and or varied responses.
- Jump to nodes
- Send and use REST API web hooks within nodes.
- Conditional based responses, webhooks, jump to's.
- Save user responses for future use within nodes or API's
- Create quick reply buttons.
Permission Based Editing
- Role based, Group Based & individual user permissions.
- Create secure user accounts using PassportJS
- Limit user access to certain features within the application.
Training Rasa
- Convert Intents into training data.
- Accurate entity insertion (Not just search and replace)
- View current training time.
- View models currently in training.
Built in Chatbot / Rasa parsers
- Ping the Rasa server directly to get a JSON response.
- Test the chatbot directly to see output of dialog management.
Still to come!
Further Analytics
- Fill out the front dashboard to expand on the simple analytics.
History
- View user's chats with the chatbot.
- Filter down based on criteria such as Dates, Topics or Intents.
Small Talk
- Implement simple small talk.
Todo / Help requested!
- Increase test coverage to 100%.
- Add Travis / Appveyor
- Provide autocomplete options for fields such as nodes.
- Better validation / error notifications.
- Add rename option for intents / expressions
- Add backup option for node / training data.
- Add sockets for chat as well as update notifications.
Known issues
- Prettier is picking up a non existent issue with spacing.
- Dashboard analytics need a default value.
Thanks
@Material-UI
React Boilerplate