ReadifyAI is a powerful, intuitive, and fast PDF question-answering app that allows you to upload multiple PDFs and ask intelligent questions like:
- π "Give a summary of Chapter 3"
- β "Explain the concept of Quantum Entanglement"
- π "What are the key takeaways from the document?"
It uses Google's Gemini model via LangChain, FAISS vector store, and Streamlit to build a conversational interface around your documents.
β
Upload multiple PDFs
β
Ask any question related to the documents
β
Get detailed, accurate answers
β
Works for summaries, explanations, definitions, and context-based answers
β
Built with Gemini 1.5 Flash, FAISS, and LangChain
- Clone the repository
git clone https://github.com/SUJALGOYALL/readifyai.git
cd readifyai- Create a virtual environment
# If using conda:
conda create -n readify python=3.11
conda activate readify
# OR using venv:
python -m venv venv
venv\Scripts\activate - Install dependencies
pip install -r requirements.txt- Set up your Google API Key
Create a .env file in the root directory:
GOOGLE_API_KEY=your_google_gemini_api_key_hereHere are the Python packages required (also present in requirements.txt):
streamlit
google-generativeai
python-dotenv
langchain
PyPDF2
faiss-cpu
langchain_google_genai
- Run the app:
streamlit run app.py- In the browser:
- Upload one or more PDF files using the sidebar
- Click βSubmit & Processβ
- Ask any question in the input field
- View intelligent answers based on the content of your PDFs
- PDF Extraction: Extracts text from uploaded PDF(s) using
PyPDF2. - Text Chunking: Splits the text into manageable chunks with overlap for context.
- Embedding: Generates embeddings using
GoogleGenerativeAIEmbeddings. - Vector Store: Stores embeddings in a FAISS index for fast similarity search.
- Q&A Chain: Uses LangChainβs
load_qa_chainand Gemini-1.5 Flash to generate answers from the retrieved documents.
- Study notes summarizer
- Research paper Q&A assistant
- Legal/contract document explainer
- Book chapter explainer
- Technical documentation assistant
This project is for educational and research purposes only.
Sujal Goyal
Mathematics & Computing, IIIT Bhagalpur