Inspiration
UCLA boasts a myriad of resources for its students, from its classes and clubs to its gaming lounges and gyms. Unfortunately, information about many of these career-progressing resources are elusive to students. To research whether or not a class is right for them, a student would expect to have to search through the courses catalog. But how do they know if the professor is a good teacher? In order to figure that out, the student would proceed to Bruinwalk to search for the professor’s score. What about the lecture and discussion times? The student would have to pull up their current class planner to check both the availability of the classes and prevent overlap. By now they have at least three tabs open and counting.
The problem is apparent. In order to make an informed choice to take advantage of UCLA resources, a student has to traverse the internet for links to different webpages. This is a time consuming process, and it is quite easy to get sidetracked from the original goal. It is also sometimes difficult to find a particular opportunity, as it could be hidden amongst the many others. Worst of all, the opportunities a student may find are unlikely to fit the student’s goals and skills perfectly.
What it does
This is where BruinBuddy comes in. BruinBuddy is a tool that we created to match students with the UCLA resources that will help them in their future career and in their extracurriculars. Given an input prompt, BruinBuddy will output an easy-to-read list of UCLA career or extracurricular opportunities that are most relevant to the user.
How we built it
We used a ton of AWS tools that we learned during the workshop to create BruinBuddy. Bedrock: Our main platform for hosting and invoking our foundation model. Our model ended up being Claude 3.5 Sonnet as it was more specific than Claude 3.5. S3: We stored vectorized embeddings of data scraped off of UCLA website, specifically about club info, event pages, and career resources. IAM: Keeps user data secure between the various API interactions that make up BruinBuddy. Strand: Allowed us to use two specialized AIs under a single user interface.
Challenges we ran into
Our first challenge started when we realized that none of us had any prior experience with AWS tools. Though this seemed daunting on the beginning of Saturday, we soon had enough knowledge by the end of the workshops. We learned how Bedrock and IAM could be used to set up our agent.
One frustrating problem we had was not realizing we had to create our own virtual environment. We were horrified because the code wouldn't even execute, and we had no idea why! Luckily, we learned about Poetry, which we used to set this up.
When we tried to test our model, AWS blocked it because we hadn't correctly configured IAM roles. We were able to solve this by searching up a quick IAM tutorial.
After our AI was up an running, we noticed a big problem. The responses we were getting from BruinBuddy were to vague, which defeated the entire purpose! We switched from Claude 3.5 to Claude 3.5 Sonnet for more precise answers.
Accomplishments that we're proud of
We are proud that we were able to get BruinBuddy up and running in a little less than two days! It works beautifully: fully customizable to tailor to the user, lightweight compared to LLMs like ChatGPT, and quick to use. Most of all, we are proud that we could solve a problem that has been plaguing our peers.
What we learned
We learned how quick it was to use AWS tools to create an AI agent to solve real problems. In the age of AI, hopefully we can solve many more important problems by applying the lessons we learned here.
What's next for BruinBuddy
We have great plans for BruinBuddy. Ultimately, we hope that it can become a core feature of the myUCLA website, so that every UCLA student can benefit from this unique tool. Additionally, we hope to stress the open-source nature of this project and allow the UCLA community to customize BruinBuddy even more. In terms of expanding BruinBuddy, we plan to add a personal profile option to streamline the customization process, and add multimodal input for Bruins who prefer talking to their new AI Buddy.
Built With
- amazon-web-services
- bedrock
- boto3
- iam
- poetry
- python
- s3
- strands
- streamlit


Log in or sign up for Devpost to join the conversation.