A simple Retrieval-Augmented Generation (RAG) pipeline for answering questions based on website content. This project combines retrieval of relevant website information with generative models to deliver contextually accurate answers.
- Website Content Parsing: Extracts and indexes content from a specified website URL.
- Retrieval-Augmented Generation (RAG): Uses a hybrid approach for question answering.
- Streamlit Interface: User-friendly web interface for inputting URLs and questions.
- Orchestration: LangChain
- Guardrails: NeMo-Guardrails
- Monitoring: Langsmith
- Retrieval: Hugging Face
- Vector Database: Pinecone
- Generation: Groq, Llama3
- Deployment: Render
- Data Loading: Accepts various data formats such as PDF, CSV, or URL links.
- Chunking: Uses text splitters to divide content into manageable chunks.
- Embedding: Generates embeddings from text using Hugging Face models.
- Vector Store: Stores embeddings in Pinecone for efficient retrieval.
- User Query (Input): Receives the user's question.
- Input Check: Uses Guardrails (NeMo-Guardrails) to ensure the question is within the scope of the dataset.
- Retriever: Retrieves relevant chunks from Pinecone based on the user’s query.
- Generator: Groq or Llama3 generates responses based on retrieved information.
- Monitoring: Langsmith monitors responses to ensure output quality.
- Output: The final answer is presented to the user.
- Python 3.9+
- Install dependencies:
pip install -r requirements.txt
- Start the app
streamlit run app.py
- Enter a Website URL in the sidebar.
- Ask Questions based on the website content.
- The RAG pipeline retrieves relevant information and generates answers.