Rasa is the leading open-source machine learning toolkit that lets developers expand bots beyond answering simple questions with minimal training data. At the core, Rasa bot has a machine learning model which trained on example conversations.
Rasa is developed with Python but for the most part, you don't need to know Python to design the basic conversational flows. You will need Python knowledge only when creating custom actions in Rasa which call external actions.
The fastest way to start with Rasa is using Rasa starter kit. The starter kit uses webhooks to communicate between Rasa and Rocket.Chat.
1. clone the starter repo
git clone https://github.com/RocketChat/rasa-kick-starter
cd rasa-kick-starter/
2. configure the bot
- open the
rasa-kick-starter/bot_rasa
folder and update thecredentials.yml
file with Rasa bot's username, password, and Rocket.Chat URL:
rocketchat:
user: "<RASA USER NAME>"
password: "<RASA USER PASS>"
server_url: "<ROCKETCHAT HOST>"
- train the bot's Machine Learning Model:
docker run -it -v $(pwd)/bot_rasa:/app rasa/rasa train
After the training, the machine learning model will be created inside the bot_rasa/models
folder.
3. run the bot
docker-compose up bot_rasa
You should see the following output:
$ docker-compose up bot_rasa
Starting rasa-kick-starter_bot_rasa_1 ... done
Attaching to rasa-kick-starter_bot_rasa_1
bot_rasa_1 | 2019-10-31 21:23:24 INFO root - Starting Rasa server on http://localhost:5005
Open your browser and navigate to http://localhost:5005
. You should see the response from the running Rasa bot:
Hello from Rasa: 1.5.0a1
If you have Rocket.Chat running on the same machine, the bot's URL is http://bot_rasa:5005
. This guide uses a remote Rocket.Chat instance, so it is necessary to get a public URL for the Rasa bot to be able to link it properly. It is recommended to use ngrok for this purpose.
Download ngrok, open terminal in the folder you downloaded ngrok to and execute the following command:
./ngrok http 5005
You should see the following output:
Session Status online
Session Expires 7 hours, 59 minutes
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://dde093e1.ngrok.io -> http://localhost:5005
Forwarding https://dde093e1.ngrok.io -> http://localhost:5005
Public URL will be provided next to Forwarding
column. In this case, http://dde093e1.ngrok.io
.
4. configure Rocket.Chat webhook
Go to Administration > Integrations
. Click New Integration
button in the top right corner and then select Outgoing WebHook
.
Select Message Sent
Event Trigger from the dropdown list. Complete the configuration with the following settings:
- Enabled:
True
- Channel:
#general
- URLs:
http://<ngrok_public_url>/webhooks/rocketchat/webhook
- Post as:
<RASA USER NAME>
NOTE: Make sure you replace the URL with a valid public URL obtained on the previous step using ngrok.
Click Save changes
in the top right corner.
5. talk to your bot
On the server, login as a regular user (not the BOT user), go to general
room, and try to talk to your bot by typing @bot_rasa hello
: