Skip to main content
PythonLocal-firstOllama + Gemini

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.

FOUNDATIONSSetup · Embeddings · Chunking · VectorsNaiveRAGAdvancedRAGAgenticRAGGraphRAG
Start here

Foundations

Core concepts shared across every RAG variant. Work through these before picking a track.

00

Setup

Install Ollama, pull nomic-embed-text and llama3.2, verify everything works.

01

Embeddings

Vector spaces, cosine similarity, and why L2 normalization matters.

02

Chunking

Document loading strategies, overlap, and how chunk size affects retrieval quality.

03

Vector Stores

FAISS vs ChromaDB, flat vs approximate indexing, when each makes sense.

After foundations

Choose Your Track

Projects are cumulative within each track — by the final module you have a complete, working system.

Naive RAG

Active

The 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
Start this track →

Advanced RAG

Coming soon

Query rewriting, hybrid search, reranking, and evaluation. Go beyond the naive baseline.

Agentic RAG

Coming soon

LLM-driven retrieval — the model decides what to retrieve, when, and how to combine sources.

Graph RAG

Coming soon

Retrieval over knowledge graphs. Captures entity relationships that chunk-based search misses.

Vectorless RAG

Coming soon

Retrieval without embeddings. LLMs navigate document structure directly via tree indexes, BM25, or agentic traversal.

Structure

Each module includes

01

Theory

Each module opens with a focused explanation — the why and how, not just the what. Concepts are kept tight and precise.

02

Exercises

Small, targeted coding tasks that isolate one idea at a time. Build intuition before taking on complexity.

03

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 →