Dr. Andy Wang, our client, is the dean of the College of Engineering, Informatics, and Applied Sciences here at Northern Arizona University. Part of his business is ensuring students, staff, and visitors have quick and easy access to information about the college. There is currently no easy way to access information about classes, professors, and events. Information like this is scattered across many NAU sites which makes it difficult to find answers to questions easily. Chatbots have become popular not just in households but also in academic settings. Chatbots offer easy access to all kinds of information from recipes to game scores.
Our project is to create an NAU chatbot called the ChatterJack Chatbot (check for the original idea). With the ChatterJack NAU students, staff, and visitors will have quick and easy access to information about the College of Engineering, Informatics, and Applied Sciences. This project will help the college operate more efficiently and allows easy access to all kinds of information that were previously difficult to find.
The ultimate goal however is that this project integrates with a Mechanical Engineering (ME) team’s project; the ME team is creating the physical robot so that eventually our project would become the “brains” of that robot.
This software will be a chatbot capable of answering a number of questions concerning the College of Engineering, Informatics, and Applied Sciences.
If you want to know more information, click here
The following are some high level requirements that outline some of the functionality that the ChatterJack chatbot will follow.
A centralized updatable database containing at minimum 500 question/answer pairs
Reasonable, quick, and intelligent responses to users’ questions via text and audio
User Authentication and secure information storage
The chatbot will be able to answer user questions within 5 seconds
Use web scrapper to easy update the database
Intuitive interface on both the chatbot and web portal
1. Eventual integration with the Louie Robot which has been developed by a Mechanical Engineering team in parallel to chatbot.
You can follow their project: click here
2. The chatbot should run on Windows Operating System Machine.
Python
Programming Language
Python will be used to develop the friendly and intuitive User Interface (UI) as well as Natural Language Processing (NLP)
MySQL
Database Management
MySQL will be used to manage the ChatterJack’s Question and Answer (QA) database.
PHP
Programming Language
PHP will be used to provide both the authentication services and security for the database containing all of the ChatterJack’s QA.
Apache
Web Server
Apache will be used to server JabberJack's web page and deploy ChatterJack on the NAU web page.
JabberJack will create a Rule-Based model chatbot that answers the user question according to the saved database of Question and Answer.
The envisioned solution contains three moving parts; there is the user interface, the database, and the Problem Retrieval System.
A user will ask the ChatterJack a question by the user interface. The user interface will then communicate with the database that contains question and answer pairs. Utilizing a pattern matching search algorithm, the chatbot will determine the best answer to the question asked then it will pass it back to the user interface that will then display the answer to the user’s question.
There is also a secondary workflow as well where an administrator can login. Once the administrator has logged in they will be able to access the question and answer database. Here administrators can edit the database by adding/deleting questions and by changing the information within it.
There are five major modules necessary for the ChatterJack Chatbot to function: Problem Retrieval System, User Interface, Message Generator, Database, and Web portal.
A basic workflow goes like this: a user asks a question in the chatbot window (made by wxPython library) via text or speech,
this question gets passed to the Problem Retrieval System which breaks down the question using Natural Language Processing (NLP) that utilizes a python library called spaCy,
grabbing the interrogatives and entities (person, class, organization). After that, it uses the information to search the Database (MySQL). In addtition, NLP is also capable of
fuzzy searching by calculating the tf-idf parameter (based on sklearn library). Then a proper and intelligent message gets constructed by the Message Generator and then return it to the User Interface which both displays and speaks
the response.
On the Web Portal (main techs are PHP, HTML/CSS, and MySQL), users can access the database and can search, edit, insert, or delete information. There are two types of accounts: Administrator and Faculty accounts.
Administrators are able to access, edit, add, and delete all information within the chatbot’s database.
Faculty accounts are only able to access, edit, add, or delete information pertaining to themselves; this is done to prevent people from editing others data on accident and to keep the database a little more secure.
In the Fall 2021 semester JabberJack completed several documents including an analysis of the technology used in the software, as well as some of the requirements that the chatbot will need to follow. JabberJack also completed a mockup of what the project will look like in its final iteration.
In the Spring 2022, JabberJack made strides in completing a prototype as well as a final iteration of the software, which pays more attention to design and development of ChatterJack chatbot. In addition, JabberJack finished all the requirement document and presentation capstone needed.
Here are the Gantt Charts for 2021 Fall and 2022 Spring.
This video is a quick proof of concept of how JabberJack can use the technologies chosen to create parts or sections of our chatbot system.
Firstly we have a demonstration of authentication and security using PHP, HTML, and CSS. First we can see an authorized user login and a message pops up alerting the user that their credentials have been accepted. Then we see a demonstration of unauthorized user credentials being entered; a message alerting that user that their credentials are not accepted.
Second we see a brief demonstration of the search algorithm that the chatbot will utilize. This program is written in python and uses a really small database so the search time will be much smaller than it would be in a real database.
Last we move onto a mockup of what the chatbot system will look like. Here we have a basic user interface that shows an input box where users will be able to input their questions and the chatbot will return their answers. We then transition to a concept of what the administration portal would look like in order to input new question/answer pairs into the database. Two basic textbox inputs for administrators one for the question and one for the answer and while this doesn’t actually add it to a database it is implied.
This video is about the final demo showing how the chatbot system and web portal work.
1. Chatbot System:
2. Web Portal: