HCI PROJECT 2 - HKUST Chef
Group 4 - HCI Acid
Ho Wing Tung (Sammi)
ROH, Jaechul (Harry)
TONG Po Lok Cruise (Cruise)
ORTEGA, Frederic Michel
For the second HCI Project, our group aimed to build an interactive chatbot system along with other useful features that could be used during the students who are currently undergoing quarantine at school. I was mainly in charge of building the conversational chatbot using Rasa and interviewing the people who have went through quarantine at school including myself.
EXISTING PROJECT & LIMITATIONS
I, myself, went through a self-quarantine at school at Hall IX and we were given access to two different websites with different purposes: 1. Food ordering system from school canteen 2. Chatroom with different offices such as "Student Housing Office", "Hall IX Office", "Medical Help" and etc. (Only the people who are going under quarantine do have the permission to access the website so we do not have an image of the current version).
If we evaluate these features in a shallow view, they all make sense and are considered as necessary features. However, some issues comes later. The first scenario is when we want to ask the Hall IX office for specific supplements such as "water", "tissue paper" or "plastic bags" or even "self-testing kits". Since there are only one or two people working at the office while there are comparably larger number of students going under quarantine asking for different supplements at the same time, the office is overwhelmed by the amount of requests they have to deal with and even forget the messages they received.
The second scenario is when we have to order our food. We can only order food at a specific given time since the canteen needs the preparation time:
Breakfast (6 p.m. the day before - 4 a.m.)
Lunch (6 p.m. the day before - 10 a.m.)
Dinner (9 p.m the day before - 4 p.m.)
However , it is very easy to forget to order food if we are working on other things. If we miss the ordering time, we either have to starve or eat instant noodles. This happens quite often for the people going under quarantine since they are also mentally shocked. We believed that we could build a simple chatbot system that aids both the housing office and the students going under quarantine for a better and happier quarantine life at either Hall IX or Conference Lodge.
For the mind map, we have considered the needs and what the chatbot can help us during the quarantine. We also dropped down our ideas on what possible feelings and features that we mostly wanted during the quarantine. The above image is the diagram of the mind map we came up with.
We have implemented the conversational working chatbot using the Rasa. Within the chatbot, we have included four main features: 1. Food ordering system 2. Asking for supplements to the Hall / Conference Lodge Office 3. Number Guessing Game for people who are feeling bored 4. Asking for Medical Help and Support. I have implemented the features for 2 and 4 with a simple conversational scenarios in the domain.yml, nlu.yml and stories.yml. I have not edited these features to the rules.yml for smoothness within the whole code structure and by not applying the highest priority.
For feature 1, we allow the user to order food directly using the chatbot system by selecting different choices from different canteens (also providing the option for drinks). The user can also settle for payment with different payment methods. In addition, the user will be able to ask the chatbot for an arrival time for the food, which the chatbot receives the information from the canteen directly. In the original website, we were not able to know about this since it was entirely different from foodpanda.
For feature 2, the user is able to ask for either for more water, plastic bags for the bin and tissue papers for the toilet. These three supplements were the specific options that the school will be able to provide to the students. However, when me and my colleagues tried to ask the Hall office through the original website, the Hall replied and sent us those supplements after 3 or 4 days, which was quite inefficient. This was because the Hall office were receiving too many requests while there were only one or two people working at the desk. So, when the user asks directly to the chatbot, it will remind the office so that the office will just have to click an "Ok" button for confirmation, which allows the chatbot to respond back to the user that the supplement will be sent soon.
For feature 3, we have created a simple random number guessing game to relieve any boredom felt by the students. We made it as simple as possible so that the user do not have to think too much and kill some time through chatting with the chatbot and also get rid of any concerns.
For feature 4, it is also important that the user is able to request for any medical support. The user tells the chatbot that he or she is feeling not well. The chatbot will ask the user with specific symptom with a level of sickness. The chatbot will tell the user to try a self-testing kit and check for the result. Either if it is positive or negative, the chatbot will tell the office for a supply of medicine since the students could not go to other places or facilities for a medical help. Since the Hall office was informed, they will be also easy to remind the school of the current situation.
Other than the chatbot system, we have created a general application that resides with the chatbot for an extra UI applied. The students using the app will be able to keep track of their work and be motivated. Also, they will be able to access the forums (like piazza) where they can share information whether they have received the supplements, having WiFi trouble, etc.
Storyboard Link: https://www.youtube.com/watch?v=K335Ia3pEAs
Overall Application Prototype Link: https://www.youtube.com/watch?v=qdMMADN6u8g
Code Link: https://github.com/jcroh0508/COMP-4461-Project-2/tree/add_intents
Chatbot Prototype Video
Few lessons learned from this project:
Keep debugging and checking with the Rasa code was important since adding different stories and rules blocked some specific stories that we wanted to execute as well as other ones. Also, checking every yml files were crucial because some codes were only implemented inside the nlu.yml but not in the domain.yml which caused the whole conversation to not process at all
Narrowing down the purpose of the application and the chatbot system in general was also significant in terms of making progress in our project. We had different ideas for the entire application but could not find the main function of the chatbot, which kind of delayed our coding process. However, we eventually found the need by setting the target users, which made all the process smoother and more efficient.
Finally, after allowing other users to test with our chatbot, we have noticed that sometimes the chatbot won't respond with an unknown answer. We have received a comment saying that it could have been better if the chatbot at least informs us whether it is an unexpected answer or not. We added the default response feature at the end to let the user know if they have inputted a response not recognised by the chatbot.