The RAG Pipeline: Build It Step by Step
Harry
· 13 Sep 2026
· 1 views
Five Stages
Every RAG system follows the same pipeline: ingest documents, split them into chunks, embed the chunks, store vectors with metadata, then retrieve and generate on each question.
Minimal Working Pipeline
pip install chromadb sentence-transformers
from sentence_transformers import SentenceTransformer
import chromadb
model = SentenceTransformer("all-MiniLM-L6-v2")
client = chromadb.PersistentClient(path="rag_notes")
notes = client.get_or_create_collection("notes")
notes.add(
ids=["1", "2"],
documents=[
"RAG retrieves context before the model answers.",
"Chunking splits documents into searchable pieces.",
],
)
question = "What is retrieved before answering?"
hits = notes.query(query_texts=[question], n_results=1)
print(hits["documents"][0][0])Adding the Generation Step
context = hits["documents"][0][0]
prompt = f"Answer using only this note.
Note: {context}
Question: {question}"
# answer = call_your_llm(prompt) # plug in any model or API you useWhy This Structure Wins
Storing chunks (not whole documents) makes retrieval precise, and metadata lets you filter by source, date or section.
Key Points
- Ingest, chunk, embed, store, retrieve, generate.
- Small real pipelines run with open-source libraries.
- Retrieved chunks become the model's context.
- Metadata keeps retrieval filterable.