Retrieval-Augmented Generation (RAG) - From Naive to Agentic & Multimodal
A hands-on, notebook-first repository that builds six retrieval-augmented-generation architectures step by step with LangChain and LangGraph, from a simple retrieve-then-generate pipeline up to self-correcting, agentic and multimodal systems.
This repository is a set of Jupyter notebooks that build six different retrieval-augmented-generation architectures incrementally, starting from a naive retrieve-then-generate pipeline and progressing through corrective RAG, self-RAG, agentic RAG and multimodal RAG. Each notebook adds one new idea, such as a grader, a filter, a fallback or a loop, on top of the previous one, so a learner can see exactly what each addition contributes.
It covers the core building blocks of a RAG pipeline: loaders for PDFs, web pages and images, a recursive text splitter, embedding models from OpenAI, Hugging Face and Google, FAISS and Chroma as vector stores, and LangChain chains or a LangGraph state graph as the orchestrator, with several interchangeable large-language-model backends including local and hosted options.