Why
Two things happen a lot when reading: you don’t understand a concept, or you want to quickly find what the book says about something.
What we built

- The whole book and our notes are split into chunks, embedded, and stored as a knowledge base. The demo includes two books (Good with Words and Six Walks in the Fictional Woods) and a set of reading notes.
- A question first retrieves the relevant passages, which are summarised before answering. That was more accurate than feeding everything to the model, and each answer shows which passages it used.
- Embeddings are cached so the same content isn’t paid for twice.
- The back end is adapted from the open-source Langchain-Chatchat, and the front end from LangChain Chat (Next.js). I did the product design and the front end.
Azure services
This was the Microsoft Learn AI Skills Challenge hackathon, so everything ran on Azure: Azure OpenAI for answers and embeddings, an Azure VM for the inference server, and Azure Static Web Apps for the front end.
Looking back
We ran out of time for uploading books from the front end and for reading PDFs online with matching passages highlighted. Half a year later, “ask questions of your own notes” became the core of my graduation project, Bookworm.