https://github.com/alexmhack/django-rasa-bot
Integrating Rasa Core with Django backend and finally using Webchat for chatbot user interface
https://github.com/alexmhack/django-rasa-bot
bot chatbot django-backend django-server django2 rasa rasa-core rasa-nlu rasa-socketio-layer rasa-webchat webchat
Last synced: 8 months ago
JSON representation
Integrating Rasa Core with Django backend and finally using Webchat for chatbot user interface
- Host: GitHub
- URL: https://github.com/alexmhack/django-rasa-bot
- Owner: Alexmhack
- Created: 2018-10-03T10:52:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-10-14T15:40:54.000Z (over 6 years ago)
- Last Synced: 2025-07-20T09:00:22.718Z (8 months ago)
- Topics: bot, chatbot, django-backend, django-server, django2, rasa, rasa-core, rasa-nlu, rasa-socketio-layer, rasa-webchat, webchat
- Language: Python
- Homepage:
- Size: 1.22 MB
- Stars: 34
- Watchers: 2
- Forks: 25
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Chatbot Models are up to date with the current versions of rasa core & nlu
# Usage
**Replace the rasachat/models folder with your models folder and run django server and bot.py file seperately**
**The data used to train the chatbot is very minimal, you should replace the rasachat/models folder or extend and improve the training data by updating `rasachat/nlu.nd` & `rasachat/stories.md` files.**
Also refer to [Django-Rasa-Sockets](https://github.com/Alexmhack/Django-Rasa-Sockets) for more info on implementing Django and Rasa with Sockets.
# Django-Rasa-Bot
Integrating Rasa Core with Django backend and finally using Webchat for chatbot user interface
In this project we will be using [rasa_core](https://rasa.com/docs/core/quickstart/)
for our chatbot backend **django** for website backend and [rasa-webchat](https://github.com/mrbot-ai/rasa-webchat) for chatbot **User Interface**
We have to first create a Rasa SocketIO Channel Layer
Create a separate file for this layer in rasachat folder **bot.py**
```
from rasa_core.agent import Agent
from rasa_core.channels.socketio import SocketIOInput
from rasa_core.agent import Agent
# load your trained agent
agent = Agent.load('models/dialogue', interpreter='models/current/nlu')
input_channel = SocketIOInput(
# event name for messages sent from the user
user_message_evt="user_uttered",
# event name for messages sent from the bot
bot_message_evt="bot_uttered",
# socket.io namespace to use for the messages
namespace=None
)
# set serve_forever=False if you want to keep the server running
s = agent.handle_channels([input_channel], 5500, serve_forever=True)
```
Above piece of code comes from Rasa [docs](https://www.rasa.com/docs/core/connectors/#id18)
Then in your html template configure rasa-webchat with following code
```
WebChat.default.init({
selector: "#webchat",
initPayload: "/get_started",
interval: 1000, // 1000 ms between each message
customData: {"sender": "django"}, // arbitrary custom data. Stay minimal as this will be added to the socket
socketUrl: "http://localhost:5500/",
title: "Connect",
subtitle: "The bot which connects people",
profileAvatar: "https://rasa.com/assets/img/demo/rasa_avatar.png",
showCloseButton: true,
fullScreenMode: false
})
```
The ```socketUrl``` is the url endpoint that we configured with **rasa socketio layer** and the ```profileAvatar``` is the image that is displayed in bot message
Now run the django server and the socketio server seperately using two terminals,
```
../Django-Rasa-Bot> python manage.py runserver
# then in another command prompt or terminal run
../Django-Rasa-Bot/rasachat> python bot.py
```
Now open the url [127.0.0.1:8000](http://127.0.0.1:8000) and click on the chat widget placed in bottom right and
enter ```hi there``` and the bot will reply.