Giter VIP home page Giter VIP logo

django-rasa-bot's Introduction

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 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 for our chatbot backend django for website backend and 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

Then in your html template configure rasa-webchat with following code

<body>
	<div id="webchat">
		<script src="https://storage.googleapis.com/mrbot-cdn/webchat-latest.js"></script>
		<script>
		    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
		    })
		</script>
	</div>
</body>

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 and click on the chat widget placed in bottom right and enter hi there and the bot will reply.

django-rasa-bot's People

Contributors

alexmhack avatar boxabirds avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.