Skip to content

This project is a Streamlit-based web app that lets you upload multiple PDF documents and interact with them in natural language. It uses Google Gemini (via LangChain) for embeddings and question-answering, along with FAISS as the vector store for efficient document retrieval.

Notifications You must be signed in to change notification settings

YoussefMoHlemyAlpha/ChatBot-with-Multiple-PDFs-RAG-Application-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“˜ Chat With Multiple PDFs

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.
image


πŸš€ Features

  • πŸ“‚ 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

πŸ› οΈ Tech Stack


⚑ How It Works

  1. Upload PDFs from the sidebar.
  2. The app extracts text and splits it into smaller chunks.
  3. Each chunk is converted into embeddings and stored in FAISS.
  4. When you ask a question, the app searches for the most relevant chunks.
  5. Relevant context is passed to Gemini, which generates a detailed answer.

βš™οΈ Setup Instructions

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

About

This project is a Streamlit-based web app that lets you upload multiple PDF documents and interact with them in natural language. It uses Google Gemini (via LangChain) for embeddings and question-answering, along with FAISS as the vector store for efficient document retrieval.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages