Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Can you provide a simple RAG example using Jupyter Notebooks


Can you provide a simple RAG example using Jupyter Notebooks


Here is a simple example of how to build a Retrieval Augmented Generation (RAG) application using Jupyter Notebooks:

Step 1: Install Required Libraries

Before you start, ensure you have the necessary libraries installed. You can install them using pip:

bash
pip install langchain langchain_community langchain_chroma

Step 2: Load Data

Load your data into a Jupyter Notebook. For this example, we will use a simple text file.

python
# Load your data
from langchain.document_loaders import TextLoader
loader = TextLoader('your_data.txt')
documents = loader.load()

Step 3: Create Vector Store

Create a vector store to store and retrieve your data.

python
# Create the vector store
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents, embeddings)

Step 4: Create RAG Agent

Create a RAG agent that combines the vector store with a language model.

python
# Create the RAG agent
from langchain.agents import create_rag_agent
llm = OpenAI()
retriever = vectorstore.as_retriever()
rag_agent = create_rag_agent(llm, retriever)

Step 5: Run the RAG Agent

Use the RAG agent to answer a query.

python
# Use the RAG agent to answer a query
query = "What is the capital of France?"
result = rag_agent.run(query)
print(result)

Full Code Example

Here is the full code example:

python
# Load your data
from langchain.document_loaders import TextLoader
loader = TextLoader('your_data.txt')
documents = loader.load()

# Create the vector store
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents, embeddings)

# Create the RAG agent
from langchain.agents import create_rag_agent
llm = OpenAI()
retriever = vectorstore.as_retriever()
rag_agent = create_rag_agent(llm, retriever)

# Use the RAG agent to answer a query
query = "What is the capital of France?"
result = rag_agent.run(query)
print(result)

Explanation

1. Loading Data: The first step is to load your data into a Jupyter Notebook. For this example, we use a simple text file.

2. Creating Vector Store: The next step is to create a vector store to store and retrieve your data. This involves embedding your documents into a vector space and storing them in a vector store.

3. Creating RAG Agent: The RAG agent combines the vector store with a language model. This allows the RAG agent to retrieve relevant documents from the vector store and then use the language model to generate a response.

4. Running the RAG Agent: Finally, you use the RAG agent to answer a query by passing it a user query. The RAG agent retrieves relevant documents from the vector store and then uses the language model to generate a response.

This is a basic example of how to build a RAG application using Jupyter Notebooks. You can customize the components (loader, vector store, language model, etc.) to fit your specific use case. The LangChain documentation has more advanced examples and tutorials on building RAG applications[1][3][4].

Citations:
[1] https://www.youtube.com/watch?v=FKmjT93D50U
[2] https://nvidia.github.io/GenerativeAIExamples/latest/jupyter-server.html
[3] https://python.langchain.com/v0.2/docs/tutorials/rag/
[4] https://github.com/HenryHengLUO/Retrieval-Augmented-Generation-Intro-Project
[5] https://www.kaggle.com/code/harshsinghal/retrieval-augmented-generation-rag