This repository contains a structured guide to implementing Retrieval-Augmented Generation (RAG). Each notebook in this repository is designed to teach a specific aspect of RAG, starting from the fundamentals to building an end-to-end pipeline.
This guide is inspired by and based on the work of ThatAIGuy. Full credit goes to the original author for their invaluable resources and insights.
-
1_fundamentals_of_rag.ipynb
Introduces the basics of Retrieval-Augmented Generation. -
2_langchain_retrieval_pipeline.ipynb
Covers how to set up a retrieval pipeline using LangChain for streamlined workflows. -
3_overview_of_document_loaders.ipynb
Provides an overview of document loaders and their role in processing data for retrieval tasks. -
4_document_loaders.ipynb
A deeper dive into using various document loaders with practical examples. -
5_text_splitter_transformation.ipynb
Explains text splitting and transformations to optimize data for embedding and retrieval. -
6_text_embedding_models.ipynb
Focuses on text embedding models and their configurations for generating meaningful vector representations. -
7_vector_stores_and_retrievers.ipynb
Discusses vector stores and retrievers, showcasing how to store and retrieve information efficiently. -
8_retrievers.ipynb
Detailed exploration of retriever types and their integration with vector stores. -
9_End_to_End_RAG_Chain.ipynb
Combines all concepts into an end-to-end Retrieval-Augmented Generation pipeline.
- Clone this repository.
- Install the required dependencies:
pip install -r requirements.txt
- Navigate through the notebooks in order, starting with
1_fundamentals_of_rag.ipynb.
- Python 3.10 or higher
- Google API Key
- Jupyter Notebook or Jupyter Lab
- All dependencies listed in
requirements.txt
Contributions are welcome! Feel free to fork this repository and submit a pull request.