Rasa is the leading open-source machine learning toolkit that lets developers expand bots beyond answering simple questions with minimal training data. The bots are based on a machine learning model trained on example conversations.
Rasa is developed with Python. For the most part you dont need to know python to design the basic conversational flows in Rasa. You will need python knowledge when creating custom actions in Rasa which calls external actions. The fastest way to start with Rasa is by using Rasa starter kit. The starter kit uses webhooks to communicate between Rasa and Rocket.Chat.
If you already have a Rocket.Chat instance you can skip this step
docker-compose up -d mongodocker-compose up -d mongo-init-replicadocker-compose up -d rocketchat
admin user with the password
Clone the quick start guide with the following command:
git clone https://github.com/RocketChat/rasa-kick-starter Create a Rasa bot user in Rocket.Chat. You can either manually login to Rocket.Chat and create a bot user via the user management page or can use the following script to create the bot user.
Run the following command to create the RASA bot.
Note: Please replace the user name and password of the RocketChat admin and bot user accordingly.
python3 scripts/bot_config.py -an admin_username -ap admin_password -bn bot_username -bp bot_pass -r http://rocketchaturl
If you are using docker-compose following is a sample usage
python3 scripts/bot_config.py -an admin -ap admin -bn bot_rasa -bp bot_rasa -r http://localhost:3000
Configure the Credentials file
credentials.yml file inside the
bot_rasa folder with Rasa bot's username and password.
rocketchat:user: "bot_rasa"password: "bot_rasa"server_url: "http://localhost:3000"
Train the Machine Learning Model
The Rasa bots machine learning model can built by using either Rasa CLI or Docker. After the training a machine learning model will be created inside the
If using Docker
docker run -it -v $(pwd)/bot_rasa:/app rasa/rasa train
If using Rasa CLI
pip3 install rasacd bot_rasarasa train
Rasa bot can be started via the Docker or Rasa CLI.
If using Docker-compose
docker-compose up -d bot_rasa
If using Rasa CLI
cd bot_rasarasa run
The Rasa bot should be reachable via Rocket.Chat.
If you are following the tutorial with docker-compose file then following is the URL to access the Rasa bot.
If you are trying to connect to a standalone Rocker.Chat instance or using Rasa CLI, lets user ngrok to get a public url for the Rasa Bot.
Install ngrok via: https://ngrok.com/download
After downloading the ngrok navigate to the ngrok file in the downloded content and execute the following command. This will provide a public URL to the Rasa bot
./ngork http 5005
Following will be the output of ngrok
Session Status onlineSession Expires 7 hours, 59 minutesVersion 2.3.30Region United States (us)Web Interface http://127.0.0.1:4040Forwarding http://e3d5a17b.ngrok.io -> http://localhost:5005Forwarding https://e3d5a17b.ngrok.io -> http://localhost:5005
Copy the http URL provided by ngrok:
Go to Administration > New Integration > Outgoing webhook. Inside the configuration insert this:
Event Trigger: Message SentEnabled: TrueChannel: #generalURLs: http://bot_rasa:5005/webhooks/rocketchat/webhookPost as: bot_rasa
If you are using ngrok then replace the URL
http://bot:5005, with the url obtained by ngrok.
Save all the changes.
@bot_rasa hello to start a conversation with the Rasa bot
If you want the Rasa bot to direct message with the users create another webhook with the following configurations.
Event Trigger: Message SentEnabled: TrueChannel: all_direct_messagesURLs: http://bot_rasa:5005/webhooks/rocketchat/webhookPost as: bot_rasa