Query a personal collection of markdown notes and get answers grounded only in that content.
Learn how a retrieval augmented generation pipeline works by reading a small, from-scratch implementation.
Adapt the pipeline to build a question-answering tool over a different markdown knowledge base.
| suraniyakunal/chunker | 0xallam/my-recipe | 0xhassaan/nn-from-scratch | |
|---|---|---|---|
| Stars | 0 | — | 0 |
| Language | Python | Python | Python |
| Last pushed | — | 2022-11-22 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a free Google Gemini API key and a separate markdown notes repository to ingest.
This project is a small retrieval augmented generation system, often called RAG, built by its author to answer questions using their own personal notes on AI engineering. Rather than searching back through old notes by hand, the author can ask a question and get an answer grounded in what those notes actually say. It was built from scratch rather than using a ready made template, as a way to understand each step of how a RAG pipeline works. The pipeline works in five steps. First it loads every markdown file from a separate notes repository. Then it splits each file into overlapping chunks of text, keeping track of which file and topic each chunk came from. Next it turns each chunk into a numerical embedding using Google's Gemini embedding model. Those chunks and their embeddings are stored in a local Chroma vector database. Finally, when a question is asked, the system finds the most relevant chunks through similarity search and passes them to a Gemini chat model, which is instructed to answer only using that retrieved context, and to say it does not know rather than guess when the notes do not cover the topic. The project is written in Python and uses LangChain for document loading and text splitting, Google's free tier Gemini API for both embeddings and generation, and Chroma as the local vector store. No paid APIs or local model inference are required, which keeps it usable on lower resource hardware. Setup involves cloning the repository, creating a Python virtual environment, installing a handful of LangChain and Chroma packages, and adding a free Gemini API key to a .env file. The README also includes a written log of design decisions the author ran into while building it, such as why re-running ingestion needs to clear the old vector store first to avoid duplicate results.
A from-scratch retrieval-augmented generation system that answers questions by searching the author's personal AI engineering notes using Gemini embeddings and a local Chroma vector store.
Mainly Python. The stack also includes Python, LangChain, Gemini API.
License terms are not stated in the README.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.