Chat Bot & Recommendation Engine

The Chat Bot and Recommendation Engine is a capstone project completed by students in the Faculty of Engineering for the UBC CIC.  Featured in the 2023 Capstone Design & Innovation Day showcase, it is under the category called ‘Facilitate Our Personal And Community Connection’. The UBC Department of Electrical and Computer Engineering students from team PB-30 developed the prototype under the supervision of their instructor and received guidance and technical expertise from the UBC CIC.

Chat Bot & Recommendation Engine

Published:

A video created by capstone team PB-30 describes the project’s goal and includes a demonstration of the solution prototype.

The chatbot proof of concept was created to act as a secondary resource when interpreting UBC’s course requirement system and to assist students on academic advising topics. The bot was built using AWS resources, conversational AI, and natural language processing tools to perform coherent conversations and provide appropriate answers to students’ questions in a simple and intuitive interface.

Approach

Building on a need from a related project, the UBC CIC sought to increase student engagement. Both the UBCO Student Engagement and Chat Bot projects share the challenge that when students do not know where to look for information or resources, it can result in missed opportunities and connections that would otherwise help these students thrive and be engaged at UBC.

Solution Overview

The AWS services used to build the prototype include Amazon Lex, Open Search, Step Functions, and leveraged the capstone teams’ own student experience to develop a solution for access to student information and services at any time of the day.

Student Assistance

Core functionality of the chatbot was based on conversational AI and natural language processing tools. These tools allow the bot to conduct coherent conversations with the user and provide appropriate answers to a variety of different questions. The underlying data that the chatbot uses to answer student questions are aggregated from a number of different UBC resources and are periodically updated to ensure correctness.

Feedback Mechanism

While the main focus of the chatbot is to answer student questions, the team also implemented the ability for the chatbot to receive feedback from users that can be viewed by system administrators. This will allow them to make improvements if necessary. Additionally, the deployment of the chatbot system has been automated, which allows future developers to easily update the chatbot by widening the scope of data or improving the AI interface.

Screenshots of UI

Click on the arrows below to view the UI images.

Architecture Diagram

This images shows the architecture diagram of the chat bot solution, and how each AWS service work together. The architecture flow begins at 2 points: the user and the system admin.

Technical Details

The architecture diagram can be viewed from two perspectives: blue numbered steps show the user/bot conversation flow and the green numbered steps show the feedback submission flow.

For the user/bot conversation flow, the major AWS components involved are Lex, Lambda, and Kendra. When a student sends a question, AWS Lex will prompt the user with questions to collect all the relevant key data such as course number, major, or faculty. The Lambda is responsible for choosing a routine to run based on the understood Lex intent, which then queries a specific Kendra index for the correct response. When a correct response is generated from AWS Kendra, the data is transported back through the same AWS components of Lambda then Lex to be displayed for the student on the frontend.

For the feedback submission flow, the feedback is sent through the chatbot interface and travels through the main components of AWS AppSync and DynamoDB to reach the system admin.

For more details on the technical information, refer to the Architecture Deep Dive on the GitHub repository.

Link to solution on GitHub: https://github.com/UBC-CIC/student-assistance-chatbot

Acknowledgements

This application was architected and developed by senior students in Electrical and Computer Engineering as part of the UBC Electrical and Computer Engineering Capstone Program. Guidance was provided by a faculty member who acted as the technical director and supported by the UBC Cloud Innovation Center technical team.

About the University of British Columbia Cloud Innovation Centre (UBC CIC)

The UBC CIC is a public-private collaboration between UBC and Amazon. A CIC identifies digital transformation challenges, the problems or opportunities that matter to the community, and provides subject matter expertise and CIC leadership.

Using Amazon’s innovation methodology, dedicated UBC and Amazon CIC staff work with students, staff and faculty, as well as community, government or not-for-profit organizations to define challenges, to engage with subject matter experts, to identify a solution, and to build a Proof of Concept (PoC). Through co-op and work-integrated learning, students also have an opportunity to learn new skills which they will later be able to apply in the workforce.