Muhammadmohid/Retrieval-Augmented-Generation
๐ค RAG-Based Chatbot
A Retrieval-Augmented Generation (RAG) chatbot that answers questions from PDF documents using AI-powered semantic search and LLM generation.
 
Live Demo: https://huggingface.co/spaces/Muhammadmohid/Retrieval-Augmented-Generation
๐ What is RAG?
RAG (Retrieval-Augmented Generation) combines information retrieval with text generation:
- Retrieve โ Find relevant content from documents using semantic search
- Augment โ Add retrieved context to the user's question
- Generate โ LLM produces accurate, grounded answers
This prevents hallucinations and ensures responses are based on actual document content.
โจ Features
Core Features
- PDF Processing: Upload and extract text from PDF documents
- Semantic Search: Uses sentence-transformers for intelligent content retrieval
- LLM Integration: Powered by Groq's Llama 3.3 70B model
- Source Citations: Every answer includes page numbers and relevance scores
- Document Preview: View document statistics and sample chunks
- AI Suggested Questions: Generate relevant questions based on document content
- Smart Chunking: Sentence-aware text splitting for better context
- Interactive UI: Clean Gradio interface with gradient styling
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Interface (Gradio) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Document Processing (PyPDF2) โ
โ โข Text extraction from PDFs โ
โ โข Metadata preservation (page, filename) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Text Chunking (Regex) โ
โ โข Sentence-aware splitting โ
โ โข 500 chars/chunk, 100 char overlap โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Embedding Generation โ
โ โข SentenceTransformer (all-MiniLM-L6-v2) โ
โ โข 384-dimensional vectors โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Similarity Search โ
โ โข Cosine similarity (scikit-learn) โ
โ โข Top-3 most relevant chunks โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ LLM Generation (Groq API) โ
โ โข Llama 3.3 70B model โ
โ โข Context + Question โ Answer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ ๏ธ Technologies Used
# Core Libraries
Python 3.10+
Gradio
PyPDF2
sentence-transformers
scikit-learn
numpy
Groq API ๐ Installation
Prerequisites
Python 3.10 or higher Groq API key (free at https://console.groq.com)
### Local Setup
# 1. Install dependencies
pip install -r requirements.txt
# 2. Run the application
python app.py
# 3. Open browser
# Navigate to http://localhost:7860Requirements.txt
gradio
PyPDF2
sentence-transformers
scikit-learn
numpy
groq๐ Usage
Step 1: Enter API Key
1. Get free API key from https://console.groq.com
2. Paste in the "๐ Groq API Key" fieldStep 2: Upload PDF
1. Click "๐ Upload PDF Files"
2. Select one or more PDF files
3. Click "๐ Process PDFs"
4. Wait for processing confirmationStep 3: Generate Questions (Optional)
1. Click "โจ Generate Suggested Questions"
2. Copy any suggested question
3. Paste into chat inputStep 4: Ask Questions
1. Type your question in chat input
2. Click "Send ๐ค" or press Enter
3. View answer with source citations๐ Project Structure
rag-based-chatbot/ โ โโโ app.py โโโ requirements.txt โโโ README.md
๐ฏ Enhancements Implemented
๐ Troubleshooting
๐ License
This project is for educational purposes.
๐จโ๐ป Author
Muhammad Mohid Hugging Face: @Muhammadmohid
๐ Acknowledgments
- Groq for fast LLM inference
- Hugging Face for model hosting
- Sentence-Transformers team for embedding models
- Gradio team for UI framework
Last Updated: December 27, 2025
