Inspiration

Many nights, my teammates and I have lied awake, driven by the urge to solve an interesting problem or learn something new. A general societal shift towards increased reliance on AI as a replacement for knowledge and overconsumption of short-form "brainrot" content threatens the magic and curiosity of our education. That's why we've decided it's time to go back to our roots...literally. Introducing Trailhead

What it does

Our project, Trailhead, generates developer maps for any skillset you can imagine. Whether it's learning how to cook an omelet or becoming an expert at chess, Trailhead will converse with you in order to figure out your learning objectives, current knowledge, and preferences for sources, creating a personalized workflow for you to achieve your goal. Trailhead stores your learning plans as "hikes", allowing you to revisit any of the sources you've already studied. You can then mark your "vistas" as completed to ensure you receive new, advanced content in your tree. Our web app has several features, including tree generation, tree interaction and viewing, and an RLHF and vector embeddings-based recommendation system representing user learning preferences. We also have a side-quests feature to recommend topics and learning path which the user is most likely to be interested in learning but hasn't though about.

How we built it

We built this web app using FastAPI. There are two main components: a client side (frontend) and backend. We built the backend mainly using Python scripts, which manipulate and analyze data from the SQL tables on Supabase. We create customized GPT agents which can extract information from user queries. We have three main kinds of agents: an agent that extracts user intent, one that obtains user resources, and one that orchestrates resource deployment.

Challenges we ran into

One of the main challenges we ran into was perfecting our prompt engineering to achieve optimal user outcomes. Orchestrating the AI agents in our workflow was quite difficult; we were thoroughly involved in type checking and schema validation. In seeking out solutions, we were able to address these issues by using Pydantic, which offers a clean and concise way to define data models using Python classes and automatically generates JSON schema.

Accomplishments that we're proud of

  • Integrating Luma API into our codebase to generate image previews for each source
  • Collecting accurate and informative web sources using Perplexity Sonar
  • Recommendation system to suggest users new topics
  • Novel tree structure for knowledge graphs that we can easily extend

What we learned

From brainstorming our initial idea to building out the entire product, we were able to build a complete scaffold for our project with basic functionality relatively fast. However, we wanted to expand it to be much more useful with features that we, as students, could actually use. This project taught us to consider our own experiences, as well as the experiences of the average user, while building a fully integrated app. Our team learned how to collaborate through stressful situations, hone our creativity by personalizing unique features, and expand our app from an initial vision into something that is more robust and even larger than our original plan.

What's next for Trailhead

  • Multimodal inputs - Allowing users to feed in image-based prompts within the web app framework
  • More data - Connecting user accounts to social media platforms so that we can better tailor learning plans to their interests and mutual connections. We can also import contact information so that sources can be not just websites or books...but also people!
  • Accessibility - We believe that no barriers should prevent users from learning whatever their heart desires. Therefore, in the future, we would work to incorporate text-to-voice and website accessibility UI/UX features.

Built With

Share this project:

Updates