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/Skype/Slack whatever!
- Database: Mongodb - You can run this locally or online like mlab
- Chatbot Brain: Rasa NLU - I reccommend 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
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!
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
Currently Facebook has been enabled with Slack and many more still to come!
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
- 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.
- 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!
- Fill out the front dashboard to expand on the simple analytics.
- View user's chats with the chatbot.
- Filter down based on criteria such as Dates, Topics or Intents.
- 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.
- Prettier is picking up a non existent issue with spacing.
- Dashboard analytics need a default value.
@Material-UI React Boilerplate