Chapter 2. The Base RAG Stack
In Chapter 1, we introduced the core idea of retrieval-augmented generation: enabling large language models to access external knowledge rather than relying solely on what they learned during training. In this chapter, we take a deeper dive into the technical components that allow a RAG system to function in practice. These components form a pipeline where data flows —often referred to as the RAG stack—that spans from preparing raw documents to generating high-quality, context-grounded responses.
We begin by examining the two major flows that define every RAG system: the ingestion flow, which transforms and stores data for supplying an LLM with unseen knowledge in the future, and the query flow, which activates at inference time to serve user requests. Each step in these flows—parsing, chunking, embedding, indexing, vector search, reranking, and LLM-based generation—plays a distinct role and comes with its own trade-offs. Understanding these pieces is essential to diagnosing errors, improving quality, and designing scalable RAG architectures that behave predictably in production environments.
As we walk through each layer, we will not only describe the concepts but also illustrate them with real code examples, practical guidance, and the rationale behind common design choices. By the end of this chapter, you will have a clear picture of how the base RAG stack works end-to-end and how its components interact to deliver accurate, efficient, and trustworthy ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access