Introduction
As students, we often encounter various UW-based websites while searching for course updates, instructor reviews, event announcements, and educational milestones. Typically, this means spending hours each week checking this information. To address this issue, we propose a chatbot advisor specifically designed for University of Waterloo students. It's set to transform how they interact with university resources and events. We employed the Retrieval-Augmented Generation framework using Cohere APIs, which provide the power of Large Language Model (LLM) generations of replies and embeddings.
Why is it impossible without RAG?
Many might assume that general LLMs provided by ChatGPT or Bing would be suitable. However, our testing has led us to the conclusion that they are not feasible for this particular problem. The primary issue lies in the fact that these LLMs have been trained on data from previous years, which leads to ''hallucinations''. For instance, when inquiring about the schedule for STAT 940 (Deep Learning), even with current, up-to-date information, these systems might provide irrelevant information, or "'hallucinate". They could, for example, give you information from a previous term, such as telling you that the lecture is planned for Friday at 4 pm in the Fall 2022 term, instead of Wednesday at 8 am in the Winter 2023 term. This issue also pertains to course instructors, locations, course descriptions, and outlines, as they can be updated each year
Main Functionality
- Courses: Provides details about the outline, schedule, location, and reviews.
- Event Announcements: Gather information from internal and external sources about hackathons, conferences, workshops, symposiums.
- Scholarship Eligibility: Offers guidance on scholarship opportunities and criteria.
- Important UW Dates: Keeps track of key dates like Reading Week, midterms, finals, and application deadlines.
- General Information: Shares useful insights about the University of Waterloo campus. ## How it works (Framework) The user, typically a University of Washington (UW) student, can access our service through an iOS app or a website. Here, they are presented with a chat-like interface that supports input in any language, such as English, Chinese, French, etc.. This versatile interface allows for both text and voice inputs. The user's input is then processed through the Cohere Large Language Model (LLM) + Retrieval-Augmented Generation (RAG) Framework, which constructs a query for our Vector Database.
To ensure we provide the most up-to-date and relevant information on courses, scholarships, announcements, and events, our system regularly parses data from a variety of UW sources. This includes official UW websites, UW newsletter, social accounts of university clubs (such as the Data Science Club and Computer Science Club) for the latest on upcoming events, as well as external sources for conference information. All this data is continuously integrated and updated in our Vector Database, ensuring its accuracy and relevance.
Use case example
For example one of UW Advisor's retrieval objectives might be managing and parsing data from numerous faculty administrators’ newsletters. These newsletters are often packed with details about upcoming events, important dates, and opportunities like scholarships and social gatherings. However, students frequently find themselves overwhelmed by the sheer volume of information - chatbot aims to alleviate this issue by providing targeted, timely information based on specific queries.
Imagine a scenario where a student inquires, "Tell me when there are going to be CS socials with free food this week." The chatbot, accessing its storage of parsed newsletter data, will analyze the request and provide a concise answer, listing relevant events that fit the criteria. Similarly, a graduate student seeking scholarship information can receive personalized suggestions based on their eligibility, such as research or volunteering experience. Scholarships are also retrieved and parsed from the university website.
Accomplishments that we're proud of
It works.
What we learned
We learned about the RAG framework, how to use Cohere in our applications, and how to work with vector databases.
Additionally, we used the Python Gradio library to create our interface, ensuring a comfortable UX/UI experience for users.
What's next for UW Advisor
For now, we have used our own student emails to gather event data. For future implementation, it would be reasonable to make arrangements with faculties to create a specific email address dedicated to retrieving data from newsletters for future integration within our database
A potential extension for our application is the generation of .ics files for calendar integration upon the user's request - this feature ensures that students can effortlessly incorporate university events into their personal schedules.
Built With
- cohere
- gradio
- huggingface
- llm
- ml
- python
- rag
- rest-api
- vector-databases
- weaviate
Log in or sign up for Devpost to join the conversation.