Web-app for interfacing with a RASA chat-bot, built on:
- Materialize-CSS for styling
- Webpack for bundling JavaScript files
- Socket.IO client for real-time communication with the RASA back-end
- Flask for quick & easy deployment
- RecorderJS for recording and saving the user's voice within the browser
Currently, the web-app supports:
- text and image messages from the bot
- text and audio messages from the user; audio messages are transcribed in the back-end and sent back to the client for display
The RASA assistant used in this project can be found here.
Install npm dependencies:
cd static
npm install --save css-loader file-loader materialize-css jquery style-loader socket.io-client url-loader webpack webpack-cli speak-tts
Install Python dependencies:
pip3 install eventlet flask
Build the front-end with webpack (this will generate /static/dist/bundle.js
):
npm run build # this will build the project once
npm run watch # this will continuously build the project any time a source file is updated
Deploy the Flask application:
python3 main.py
This will launch the application at http://localhost:8080/ (as defined in main.py
), with the Socket.IO client listening on http://localhost:5005 (as defined in static/js/socketio_client.js
).