This is a Streamlit web application that allows you to upload multiple PDF files and interact with them using natural language questions. It leverages Google Gemini (Generative AI) through LangChain for embeddings and question-answering, while FAISS is used as the vector store for efficient similarity search.

- π Upload and process multiple PDF documents
- π§© Extract text from PDFs and split into manageable chunks
- π Create embeddings with Google Generative AI
- πΎ Store embeddings locally using FAISS
- π¬ Ask natural language questions and get context-aware answers
- π¨ Custom background image support for UI
- Streamlit β UI framework
- LangChain β LLM orchestration
- Google Generative AI (Gemini) β Embeddings & Chat model
- FAISS β Vector database for retrieval
- PyPDF2 β PDF text extraction
- dotenv β Environment variable management
- Upload PDFs from the sidebar.
- The app extracts text and splits it into smaller chunks.
- Each chunk is converted into embeddings and stored in FAISS.
- When you ask a question, the app searches for the most relevant chunks.
- Relevant context is passed to Gemini, which generates a detailed answer.
git clone https://github.com/yourusername/chat-with-multiple-pdfs.git cd chat-with-multiple-pdfs
python -m venv venv source venv/bin/activate # On Mac/Linux venv\Scripts\activate # On Windows
pip install -r requirements.txt
GOOGLE_API_KEY=your_google_api_key_here
streamlit run app.py