Inspiration

Currently, ChatGPT has stirred up lots of hype for helping students with studying materials for courses. However, the existing model is trained on such a large model that it isn't able to provide specific details from content. We wanted to come up with a solution that is able to understand specific context from provided course material to better help students, like ourselves, study more precisely for exams and assignments. We aim to make this tool feel more like a prodigious friend than a simple textbook.

What it does

It allows for a user to provide a PDF document of any course material (textbook, syllabus, study guide, homework, etc.) and provides quiz questions for users to study with.

How we built it

Using OpenAI's API to access ChatGPT, we prompted ChatGPT to provide questions/answers based on a provided topic. In order to ensure that ChatGPT doesn't hallucinate and have better context of the subject matter, we use FeatureForm's Retrieval Augmented Generation (RAG) to provide context vector embedding of content by passing in data from a provided PDF, which is served from a Python Flask back end. With the uploaded file in store, a user can query on the front end for a certain topic, number of questions and more to retrieve a more specific GPT generated response with questions that the user can quiz themselves with based on the most relevant vector embeddings.

Challenges we ran into

One of the biggest challenges we faced was incorporating the FeatureForm services to our pipeline. We were running into many issues with Pinecone and after consulting FeatureForm about it, it seemed that we stumbled upon some bugs that they had on their end as well as with the interaction with Pinecone, which we worked with them to debug and improve for the future.

Accomplishments that we're proud of

  • Being able to incorporate an OpenSource tool (FeatureForm) to our AI solution
  • Getting experience in developing AI-supported tools for the first time
  • Understanding Prompt Engineering

What we learned

  • How to Prompt Engineer like a pro
  • Using the OpenAI ChatGPT API to pass queries and retrieve responses for our use case
  • Using a completely new tool to help support the use of the ChatGPT API
  • Using FeatureForm to implement Retrieval Augmented Generation to provide context for GPT
  • Creating content embeddings and using vector databases like Pinecone

What's next for StudyBuddy

Hopefully we see a use for it for ourselves as we go through our academic career and finding more optimal ways to digest material. If the system seems promising enough, it could be something that could be used by other students as a tool to sort of be that one "expert" student that every student knows that they can rely on to ask questions about a course.

Built With

Share this project:

Updates