← all repositories
NirDiamant/RAG_Techniques

42 ways to stop your RAG from lying to you

A living cookbook of retrieval-augmented generation techniques, each in a runnable notebook with honest notes on when it fails.

27.8k stars Jupyter Notebook RAG · SearchLearning
RAG_Techniques
Velocity · 7d
+40
★ / day
Trend
steady
star history

What it does

This repo collects 42 Jupyter notebooks demonstrating RAG techniques from basic vector-store retrieval up through agentic patterns, memory augmentation, and evaluation frameworks. Each technique ships with runnable code and a companion explainer covering the intuition, the win conditions, and the quiet failure modes.

The interesting bit

The author resists the usual RAG hype cycle by explicitly documenting when each technique “quietly fails” — a rarity in tutorial content. The repo also funnels into a 400-page book and a Substack, but the notebooks themselves remain free and community-contributed.

Key highlights

  • 42 notebooks across foundational, advanced, and agentic RAG categories
  • Each technique paired with a free DiamantAI write-up on intuition and failure modes
  • Covers chunking strategies, reranking, self-RAG, graph RAG, MemoRAG, and end-to-end evaluation
  • Active contribution guidelines and community channels (Discord, Reddit)
  • Related repos for prompt engineering, agent memory, and production agent patterns

Caveats

  • README is heavily commercialized: book ads, job board, sponsorship banners, and newsletter funnels dominate the top half
  • “42 notebooks and growing” claim appears twice with slightly different counts (35 vs. 42) in different README sections, suggesting stale copy
  • No explicit dependency management or test coverage visible in the provided sources

Verdict

Worth bookmarking if you’re building RAG systems and tired of tutorials that pretend every technique is a universal win. Skip it if you need a clean, framework-agnostic reference without the upsell noise.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.