Every RAG tutorial I read used LangChain or LlamaIndex and hid the interesting parts. So I built a 500-line RAG pipeline with no frameworks — just pypdf, ChromaDB, and Ollama. The exercise taught me more about embeddings, chunking, and prompt design than a year of using the high-level libraries. Here's the code, the design, and the parts that surprised me.

Every RAG tutorial I read used LangChain or LlamaIndex and hid the interesting parts. So I built a 500-line RAG pipeline with no frameworks — just pypdf, ChromaDB, and Ollama. The…

TL;DR: Phase 1 of a from-scratch RAG app — Spring AI, pgvector, local Ollama — ends with a working...