RAGComplete Study Guide
A structured curriculum for Python developers. Build Retrieval-Augmented Generation systems from first principles — across multiple architectures, from naive pipelines to agentic and graph-based retrieval.
Foundations
Core concepts shared across every RAG variant. Work through these before picking a track.
Setup
Install Ollama, pull nomic-embed-text and llama3.2, verify everything works.
Embeddings
Vector spaces, cosine similarity, and why L2 normalization matters.
Chunking
Document loading strategies, overlap, and how chunk size affects retrieval quality.
Vector Stores
FAISS vs ChromaDB, flat vs approximate indexing, when each makes sense.
Choose Your Track
Projects are cumulative within each track — by the final module you have a complete, working system.
Naive RAG
ActiveThe foundational pipeline. Retrieve the most relevant chunks from a vector store, pass them to an LLM, get grounded answers.
- 01 — Retrieval
- 02 — Generation
- 03 — Cloud Models
Advanced RAG
Coming soonQuery rewriting, hybrid search, reranking, and evaluation. Go beyond the naive baseline.
Agentic RAG
Coming soonLLM-driven retrieval — the model decides what to retrieve, when, and how to combine sources.
Graph RAG
Coming soonRetrieval over knowledge graphs. Captures entity relationships that chunk-based search misses.
Vectorless RAG
Coming soonRetrieval without embeddings. LLMs navigate document structure directly via tree indexes, BM25, or agentic traversal.
Each module includes
Theory
Each module opens with a focused explanation — the why and how, not just the what. Concepts are kept tight and precise.
Exercises
Small, targeted coding tasks that isolate one idea at a time. Build intuition before taking on complexity.
Project
A cumulative build that extends across the whole track. The final module produces a complete, working system.
Prerequisites
Ready to build?
You need Python 3.10+, ~8 GB of free disk space for Ollama model weights, and about 30 minutes to complete the setup module. Everything else is explained as you go.
Go to Setup →