Mind Reader: your buddy to chat with when you are on a low

As part of the MindsDB hackathon, I had an idea to build a chatbot that is aimed at mentally supporting people who are going through tough times.

You can check out the ideation and demo below.

A user would interact with the front end. The front end will accept input and pass it on to the backend. The backend would be powered by MindsDB to generate the response and the backend would pass it back to the frontend.

High level diagram

The input would be given to the model.

Simple request

The model would give back the response.

Good response

I have used Flask (micro web framework for Python) to build the web app. Implemented features such as routing, HTTP method, request and response handling, g (global object) and Blueprint.

Flask-RESTx extension for building and documenting RESTful APIs, API declaration using Namespace, resource routing, request and response parsing, input and output models, built-in error handling, automatic documentation and swagger UI integration.

The mindsdb-python-sdk for connecting to MindsDB, and YugabyteDB operations and managing projects (which would contain models, views and jobs).

You can follow the README in mind-reader to setup the backend for yourself.

To keep track of the conversation we would have a database with input and output tables.

To store the input messages that haven't been replied to yet and to store the replies to those messages into the output table, we use views.

To automate the whole setup we use job.

You can create a mind-reader chatbot for yourself by following the README in mind-reader-chatbot.

Cheers!