An AI-powered Retrieval-Augmented Generation (RAG) application that allows users to upload PDF documents and ask intelligent questions about their content. The system retrieves relevant information from uploaded documents and generates accurate contextual responses using Large Language Models (LLMs).
The AI PDF Question Answering Assistant is a Generative AI application built using Retrieval-Augmented Generation (RAG).
Users can upload PDF documents and ask questions in natural language. The application extracts document content, creates embeddings, stores them in a FAISS vector database, retrieves the most relevant information, and generates context-aware answers using Large Language Models.
This project demonstrates practical implementation of:
- Retrieval-Augmented Generation (RAG)
- Semantic Search
- Vector Databases
- Embeddings
- Large Language Models (LLMs)
- Natural Language Processing (NLP)
β Upload PDF Documents
β Extract Text from PDFs
β Intelligent Question Answering
β Semantic Search using Embeddings
β FAISS Vector Database Integration
β Context-Aware AI Responses
β Streamlit Web Interface
β Fast Document Retrieval
User Uploads PDF
β
Text Extraction
β
Text Chunking
β
Embedding Generation
β
FAISS Vector Database
β
Semantic Retrieval
β
LLM Processing
β
Answer Generation
β
Response Displayed to User
- Python
- Streamlit
- LangChain
- FAISS
- Sentence Transformers
- PyPDF2
- Retrieval-Augmented Generation (RAG)
- Embeddings
- Semantic Search
- Large Language Models (LLMs)
- OpenRouter API
- Implemented Retrieval-Augmented Generation (RAG) pipeline
- Used FAISS for semantic vector search
- Integrated LLM responses using OpenRouter API
- Developed interactive UI using Streamlit
- Enabled document-based question answering
- Improved information retrieval efficiency
- Reduced manual document searching effort
- Python Programming
- Machine Learning
- Generative AI
- Retrieval-Augmented Generation (RAG)
- LangChain
- FAISS
- Vector Databases
- Natural Language Processing (NLP)
- Prompt Engineering
- Semantic Search
- Streamlit Development
- API Integration
The user uploads a PDF document through the Streamlit interface.
Text content is extracted from the uploaded PDF.
Large text is divided into smaller chunks for efficient processing.
Embeddings are generated using Sentence Transformers.
Generated embeddings are stored in a FAISS vector database.
The user asks a question related to the uploaded document.
FAISS retrieves the most relevant document chunks.
Relevant chunks are passed to the LLM through OpenRouter API.
The generated answer is displayed in the Streamlit interface.
AI-PDF-QA-Assistant/
β
βββ app.py
βββ requirements.txt
βββ README.md
βββ screenshots/
β βββ home-page.png
β βββ pdf-upload.png
β βββ user-question.png
β βββ generated-answer.png
β
βββ vector_store/
βββ data/
git clone https://github.com/preethi-beri/AI-PDF-QA-Assistant.gitcd AI-PDF-QA-Assistantpip install -r requirements.txtstreamlit run app.pyPython 3.9+
Streamlit
LangChain
FAISS
Sentence Transformers
PyPDF2
OpenRouter API Key
- Research Paper Analysis
- Academic Document Search
- Resume Analysis
- Business Report Analysis
- Legal Document Search
- Knowledge Management Systems
- Educational Assistance
- Multi-PDF Question Answering
- Chat History Support
- Voice-Based Queries
- OCR for Scanned PDFs
- Cloud Deployment
- User Authentication
- Citation Generation
- Multiple File Format Support
Through this project, I gained practical experience in:
- Generative AI Development
- Retrieval-Augmented Generation (RAG)
- Vector Databases (FAISS)
- LangChain Framework
- LLM Integration
- Streamlit Application Development
- Semantic Search Systems
- End-to-End AI Project Development
B.Tech Computer Science & Data Science Student
AI/ML Enthusiast | Data Science Learner | Automation Testing Enthusiast
π LinkedIn: https://www.linkedin.com/in/preethi-beri
π GitHub: https://github.com/preethi-beri
β If you found this project useful, consider giving it a star.



