/RasaTalk

A chatbot framework for Rasa NLU

Primary LanguageJavaScriptMIT LicenseMIT

                 

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 Gitter chat

Build Status

Demo

https://www.talk.jackdh.com (User: demo@jackdh.com Pass: demo1234)

Installation

Prerequisites

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.

Third Party Intregration

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

Quickly add training data with entities

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.

Dialog management Updating Nodes

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.

Fine grain permission control

Training Rasa

  • Convert Intents into training data.
  • Accurate entity insertion (Not just search and replace)
  • View current training time.
  • View models currently in training.

Generate, download & train Rasa UI.

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.

Directly see NLU results and chatbot outputs.

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