The objective of this project is to design a full stack web application to compare a variable set of FAQ Chatbot API endpoints. The chatbot platform includes a text input and a speech input for intuitiveness and to cater for real live scenarios. For the context of this project, MSF's Baby Bonus is used as a test bed for FAQ question and answer matching.
- Text and Speech based input methods
- Multi FAQ Endpoint selection for response visualization
- Response similarity comparison
- Recommendation for similar questions
- Govtech's askJamie (Benchmark for accuracy comparison)
- MICL lab's QA Matching Model
- Google's Dialogflow
- Text Classification Model
- Rajat QA Matching Model
- AISG's Speech to Text
- Google's Speech API
- Twilio Speech Lab (To be implemented)
Docker is used to set up 3 microservices React Frontend, Node Backend and Flask Server for response comparison. A docker-compose file is used to start up all microservices for deployment usage. Docker deployment resources can be found in the Docker branch of the repository.
frontend directory: Written on ReactJS, provides the view of the application
backend directory: Written on NodeJS, provides API endpoints for frontend
comparison directory: Written on Flask, provides API service for response comparisons
dialogflowfunctions: Written on NodeJS, used to upload intentions to dialogflow for NLP training
flaskservice directory: Written on Flask, provides Text Classification Model Training and response comparisons
Running Development
Following directories must be executed in seperate terminals to run application
- Frontend Directory
- Backend Directory
- flaskservice Directory(Deep Neural Network + Similarity) or comparison Directory(Similarity only)
Additional Requirement
Create a .env
file in the Backend Directory with the following:
DIALOGFLOW_PROJECT_ID= XXX
AISG_TOKEN= XXX
SPEECH_API= ws://40.90.170.182:8001/client/ws/speech
SPEECH_HTTP_API= http://40.90.170.182:8001/client/dynamic/recognize