A powerful PDF summarization tool that uses Google's Gemma 3 (via Ollama) to generate comprehensive technical summaries of academic papers, with a focus on extracting and organizing technical details.
- 📚 Arxiv PDF download and processing
- 🔍 Intelligent text extraction and chunking
- 🤖 Parallel processing with Gemma 3 LLM
- 📊 Structured technical summaries
- ⚡ FastAPI backend with async processing
- 🌐 Streamlit frontend interface
- Python 3.8+
- Ollama with Gemma 3 model installed
- 16GB+ RAM recommended
- GPU recommended for faster processing
- Clone the repository:
git clone https://github.com/arjunprabhulal/gemma3_pdf_summarizer.git
cd gemma3_pdf_summarizer
- Install dependencies:
pip install -r requirement.txt
- Install and run Ollama with Gemma 3:
# Install Ollama from https://ollama.ai
ollama pull gemma3:27b
- Start the FastAPI backend:
python main.py
- Start the Streamlit frontend in a new terminal:
streamlit run frontend.py
- Access the web interface at
http://localhost:8501
The system uses a parallel processing architecture to handle large PDFs efficiently:
- PDF Processing: Downloads and extracts text from PDFs using PyMuPDF
- Text Chunking: Splits text into optimal chunks for Gemma 3's context window
- Parallel Processing: Processes chunks concurrently with retry mechanisms
- Summary Generation: Creates structured technical summaries focusing on:
- System Architecture
- Technical Implementation
- Infrastructure & Setup
- Performance Analysis
- Optimization Techniques
GET /health
: Health check endpointPOST /summarize_arxiv/
: Main endpoint for PDF summarization- Input:
{"url": "https://arxiv.org/pdf/paper_id.pdf"}
- Output: Structured technical summary
- Input:
Feel free to open issues or submit pull requests for improvements.
MIT License