Help to understand pdf in simple way to study in Exams. An AI-powered Study Assistant that helps you easily understand, analyze, and extract key information from your PDF textbooks and modules to ace your exams.
- Upload and process multiple PDF documents
- Extract text and figure references
- Maximum file size: 50MB per file
- Secure local processing of documents
- Contextual answers based on PDF content
- Three response length options: small, medium, large
- Figure and section references in answers
- Duplicate question detection
- Persistent question-answer history
- Export session to formatted PDF
- Delete individual Q&A entries
- Usage statistics tracking
- Rate limiting protection
- Concurrent user support
- Automatic cleanup of old sessions
- Secure vector store management
Ensure you have the following dependencies installed:
# Core dependencies
streamlit
PyPDF2
reportlab
langchain
langchain-google-genai
faiss-cpu
python-dotenv-
Clone the repository:
git clone <your-repository-url> cd study-assistant
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
Create a
.envfile in the project root with:GEMINI_API_KEY=your_google_api_key VECTOR_STORE_PATH=user_vector_stores
-
Start the application:
streamlit run app.py
-
Open
http://localhost:8501in your web browser. -
Upload PDF documents and click "Process PDFs".
-
Enter questions about the content and select desired answer length.
-
Review answers and export session to PDF if needed.
The application is modularized into several components under the src/ directory:
- src/config.py: Manages global configuration and environment variables.
- src/vector_store.py: Contains
UserVectorStorefor managing FAISS vector stores for multiple users. - src/pdf_processor.py: Extracts text and figures from PDFs, creates chunks, and manages PDF exports.
- src/qa_chain.py: Configures the LangChain QA models and handles question processing.
- app.py: The main Streamlit entry point.
- All PDFs are processed locally.
- No data is stored permanently.
- Automatic cleanup of old sessions.
- Rate limiting protection.
- Concurrent access management.
- File size restrictions.
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Push to the branch.
- Create a Pull Request.
This project is licensed under the MIT License.
- Built with Streamlit
- Powered by Google's Generative AI
- Uses FAISS for vector storage
- Utilizes Langchain for document processing
© 2025 Study Assistant - All PDFs are processed locally and securely.