Retrieval-Augmented Generation (RAG) Architecture
Enhancing LLM responses by fetching grounded context from private document databases before inference.
Architecture Overview
RAG splits raw documents into semantic chunks, generates vector embeddings using an embedding model, stores them in a vector index, and retrieves top-K matching chunks via cosine similarity to inject into the LLM prompt context.
Key Architecture Concepts
- ❖Document Ingestion & Chunking: Splitting text into 512-token chunks with 50-token overlap.
- ❖Vector Embedding: Converting text chunks into high-dimensional numerical vectors (e.g. 1536-dim).
- ❖Similarity Search: Cosine similarity or dot-product distance lookup against PGVector, Qdrant, or Pinecone.
- ❖Context Injection: Formatting retrieved chunks into system prompt instructions for hallucination-free generation.
Implementation Code Example
from sentence_transformers import SentenceTransformer
import numpy as np
model = SentenceTransformer('all-MiniLM-L6-v2')
docs = ["Linux chmod 755 sets read/write/exec for owner.", "Cloudflare 522 means connection timeout."]
doc_embeddings = model.encode(docs)
query = "How to fix Linux permission denied?"
query_vec = model.encode(query)
similarities = [np.dot(query_vec, d) / (np.linalg.norm(query_vec) * np.linalg.norm(d)) for d in doc_embeddings]
best_doc = docs[np.argmax(similarities)]Practical Engineering Takeaway
RAG allows LLMs to access live enterprise knowledge bases without expensive custom model fine-tuning.
