Welcome to the "Retrieval-Augmented Generation (RAG) and LLMs" code repository! In this repo, we begin to understand how to augment large language models with real-time data for dynamic, context-aware apps.
Much of the code in these sessions is be featured in the 2nd edition of my latest book on LLMs:
so if you're itching for more, check it out and please leave a rating/review to tell me what you thought :)
For even more, check out my Expert Playlist!
- Basic to Intermediate Python Skills: A solid understanding of Python is essential, as it will be the primary programming language used for demonstrating RAG integration with LLMs and handling real-time data.
- Foundational Knowledge in Machine Learning and LLMs: Familiarity with basic machine learning concepts is crucial. Additionally, having some prior knowledge of Large Language Models will be beneficial, as we will delve into more advanced topics related to augmenting these models with RAG.
- Introductory Experience with NLP and AI Models: A basic grasp of Natural Language Processing (NLP) and general AI model concepts will aid in understanding how RAG enhances the capabilities of these technologies in dynamic and evolving data environments.
- Clone this repository to your local machine.
- Ensure you have set the following api keyes:
- OpenAI key
- Pinecone Key
- Anthropic Key
- Gemini API Key
- Cohere Key
- Huggingface Key (if you want to deploy llama)
You're all set to explore the notebooks!
This project contains several Jupyter notebooks each focusing on a specific topic:
-
RAG - Retrieval: An introduction to vector databases, embeddings, and retrieval
- FastAPI + Chatting - A simple FASTAPI implementation of our RAG app and a chat client using streamlit to test our work!
- Advanced Semantic Search: A more advanced notebook on semantic search, cross-encoders, and fine-tuning
- Advanced - Fine-tuning Embeddings For Rec Engines: Fine-tuning embedding engines using custom preference data
- Advanced - Fine-tuning Embeddings with Synthetic Data - Using GPT-4o to create synthetic queries for a corpus to increase the quality of open-source embedding models
-
RAG - Generation: Building a RAG chatbot using our semantic search retrieval system
-
Evaluating LLMs with Rubrics - Exploring a rubric prompt to evaluate generative output
-
First Steps with Agents: A natural expansion from RAG to automated AI Agents
-
-
Advanced - GraphRAG - A simple introduction to GraphRAG (RAG using a knowledge graph) using Neo4J, Cohere's Re-Rank, GPT-4o, and a touch of Langchain
-
Advanced - Multimodal Retrieval - Using a CLIP model to build an image search system
-
Open-source models built for RAG - Command-R by Cohere
- Example model on HuggingFace
-
A quick-start guide to GraphRAG with LangChain - inspired part of my GraphRAG code
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
If you have questions, I'm available on Intro :)