# Gemini-RAG — Technical Specification & Case Study

> Progressive 6-stage algorithmic retrieval curriculum isolating modern RAG techniques across dedicated Git branches. Explores MMR diversity, dynamic query translation, and reciprocal rank fusion, proving the architectural separation between vector engines (ChromaDB) and orchestration frameworks (LangChain).

- **Status:** Complete Curriculum // Open Source Reference
- **Repository:** https://github.com/asimansari-git/Gemini-RAG
- **HTML Case Study:** https://asimansari.com/projects/gemini-rag.html
- **Canonical Domain:** https://gemini-rag.asimansari.com

---

## 1. Separation of Concerns: Engine vs. Framework

A common anti-pattern in generative AI engineering is treating vector databases as application logic engines.

- **ChromaDB (The Engine):** Fast, bare-metal indexing of high-dimensional embeddings. Purposefully omits heuristic application re-ranking to maintain sub-millisecond retrieval speeds and minimal memory overhead.
- **LangChain (The Orchestration Chassis):** Manages application-layer heuristics in memory: fetching an over-sampled candidate pool (e.g. `fetch_k=20`) and executing Maximal Marginal Relevance (MMR) calculations to balance relevance against redundancy.

---

## 2. The 6-Stage Branch Curriculum

The repository isolates each retrieval milestone into an atomic branch:

| Branch / Stage | Algorithmic Technique | Failure Mode Addressed |
| :--- | :--- | :--- |
| `01-naive-rag` | Basic vector similarity lookup | Chunking boundary degradation and semantic drift. |
| `02-chunking-strategies` | Recursive character splitting with overlap | Context fragmentation across paragraph boundaries. |
| `03-mmr-diversity` | Maximal Marginal Relevance ($\lambda = 0.7$) | Top-k query results containing identical near-duplicate information. |
| `04-self-query` | Dynamic query filter translation | Querying document metadata without explicit manual filter definitions. |
| `05-context-compression` | Mathematical embedding threshold filtering | Feeding unpruned, noisy contexts into expensive downstream LLM windows. |
| `06-hybrid-search` | Reciprocal Rank Fusion (RRF) | Pure semantic lookup failing on exact keyword and identifier lookups. |

---

## 3. Mathematical Foundations: Maximal Marginal Relevance (MMR)

$$\text{MMR} = \arg\max_{d_i \in R \setminus S} \left[ \lambda \cdot \text{Sim}_1(d_i, q) - (1 - \lambda) \max_{d_j \in S} \text{Sim}_2(d_i, d_j) \right]$$

Where:
- $R$ is the candidate pool of retrieved documents from ChromaDB.
- $S$ is the set of already selected documents.
- $\lambda \in [0, 1]$ balances query relevance ($\lambda \to 1$) against document diversity ($\lambda \to 0$).
