We've all been there, staring at our notes and rereading the textbook even though all of our teachers say that passive learning is totally useless. At the same time, making questions to quiz yourself can be a real pain in the arse, and you can't even be sure your questions are objective enough to be good! So, we sought to create an app that leverages the power of many recently launched LLMs to provide an easy and convenient way to turn your Notion notes into quizzes.
What it does
Gnostic is a Chrome extension and Notion Plugin that allows you to easily generate questions and answers based on your notes in Notion. Once installed, a button will pop up on your page that allows you to generate a quiz based on the given notes.
How we built it
The front end is a single button built using Chrome's extension developer kit, which sends metadata to our API built with express. This backend then interacts with OpenAI's GPT and notion's API in order to scrape the desired page for its notes and generate questions to test one's understanding of those notes.
Challenges we ran into
As it turns out, prompt engineering can be endlessly annoying. As such, a lot of trial and error with the GPT model and ChatGPT was required to get consistent outputs that could be parsed by a relatively strict schema (in order to find the sources that the model was using). On the other hand, the extension itself was only a necessity after it was discovered there was no way to retrieve the user's current page from the Notion integration alone. Additionally, Notion had a lot of scripting on its own site, which made altering the page via an extension a pain to debug.
Accomplishments that we're proud of
For many of us, this was one of the first times we tried to use GPT's API in one of our own applications. A similar story could be said for notion, and the process of making changes and automating tasks in a program that we use so often was very satisfying.
What we learned
Apart from hard skills like Notion's API and GPT's API, we learned a great deal about analyzing JSON data, web networking (I hate cors), and the power of a generic "text completion" model.
What's next for Gnostic
We plan to add image segmentation, custom page locations, and turning the integration into a public one on Notion. We also await Chrome Web Store's approval of our extension so users can add it to their browser via web store.