I built RAG-PDF-Chatbot, also called PDF Chat AI, as an educational and research project on my GitHub account, @Aakashkumar017. It lets people upload PDFs, ask questions in natural language, and receive context-aware, document-grounded answers through a Streamlit chat interface. The README names me as Aakash Kumar and lists B.Tech CSE (Data Science). The project is written in Python and is dated as started and last updated in 2026-07. My GitHub profile also lists it among my retrieval projects in github profile.
My ingestion path loads PDFs with PyPDFLoader, splits the text with RecursiveCharacterTextSplitter using chunk_size=800 and chunk_overlap=200, embeds the chunks with Hugging Face's all-MiniLM-L6-v2 (sentence-transformers/all-MiniLM-L6-v2), and stores them in FAISS. The query path uses MMR retrieval with k=6, fetch_k=20, and lambda_mult=0.6. It assembles retrieved context, the user's query, and chat history into a prompt for Groq's Llama 3.1 8B Instant model (llama-3.1-8b-instant), which generates the answer.
The ingestion and query paths share a FAISS vector database: the README says it is built once during ingestion and read for each query, so the retriever does not re-embed the document for every question. The listed features include PDF upload and chat, semantic search, automatic indexing and retrieval, conversation-history support, and document-aware, page-cited question answering. The README does not explain how conversation history is stored or whether it persists between sessions.
The documented stack is Streamlit for the interface; LangChain and LangChain Community for the workflow; Groq with Llama 3.1 8B Instant for answer generation; Hugging Face all-MiniLM-L6-v2 embeddings; FAISS for vector storage; and PyPDF for document processing. The project files assign app.py to the Streamlit application, main.py to standalone execution, rag_pipeline.py to the RAG workflow, pdf_loader.py to PDF loading, chunking.py to document chunking, embedding.py to model loading, vector_store.py to FAISS, retriever.py to retrieval configuration, and llm_call.py to Groq integration. The repository also lists requirement.txt, .env, app.log, architecture-diagram.png, and README.md.
git clone https://github.com/your-username/pdf-chat-ai.git
cd pdf-chat-ai
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
pip install -r requirement.txt
# Add GROQ_API_KEY=your_groq_api_key to a .env file in the project root
streamlit run app.py
# Local application: http://localhost:8501
The documented dependencies include streamlit, langchain, langchain-community, langchain-groq, faiss-cpu, sentence-transformers, transformers, torch, pypdf, and python-dotenv. The README includes two application screenshots sized 1366 × 584 and 1366 × 634, and an architecture diagram sized 1450 × 2278. Its clone command uses the placeholder your-username, so the actual repository URL is not established. The README provides no evaluation results, accuracy measurements, or performance timings.
The README lists multi-PDF support, persistent chat memory, source highlighting, PDF annotation, document comparison, BM25-plus-vector hybrid search, Docker deployment, and AWS or Azure deployment as future enhancements, not implemented features. It does not specify their status beyond being proposed enhancements or give a timeline.