We are college students and we understand very well the anxious wait times that we have to handle while a teacher him/herself is busy with her important work. So instead of us waiting every time, it would be nice to have an automated response to solve simple and/or generic doubts.
What it does
It does exactly what the inspiration was. It handles FAQs and doubts for students even without a human available to answer them. However, for the doubts that it couldn't answer, it consolidates and allows the teachers to answer or map the question to answers that already exist in the knowledge-base. So a student can ask doubts, and if not satisfied, can post the doubt to be answered later. Once a doubt is answered, its stored in the knowledge-base and thus is handled correctly the second time someone asks the same.
How we built it
- The API is built using Flask and is powered by Azure QnAMaker and Cognitive Search
- It is deployed separately on Azure's App Service
- The actual web-app is powered by Node.js and MongoDB.
- The frontend in Vanilla Js and CSS (no frameworks).
- It consumes the ChatBot API to answer, search and rectify all doubts
Challenges we ran into
We ran into the challenge of re-training the ChatBot only through the API. So we found a wrapper library supported by Azure services and that's how we were able write scripts that could re-train and publish the whole knowledge base on demand through a simple API. We also faced problems with slow loading and fetching from databases but for that, Server-side rendering proved to be useful!
What's next for Rektify
- Adding security and validation for submitting new questions to avoid spam.
- Mailing to notify the user who asked a question
- UI updates for a smoother experience