gemma3_pdf_summarizer icon indicating copy to clipboard operation
gemma3_pdf_summarizer copied to clipboard

A high-performance PDF summarization tool powered by Google's Gemma 3 LLM. Features parallel processing, async operations, and intelligent chunking for technical paper analysis. Built with FastAPI, St...

📄 AI-Powered PDF Summarizer

🚀 AI-Powered PDF Summarizer is a tool that extracts and summarizes research papers from ArXiv PDFs using Ollama (Gemma 3 LLM). The system provides structured, downloadable summaries to help researchers and professionals quickly grasp key findings.

PDF Summarizer UI


🛠 Features

  • 🌐 Input an ArXiv PDF URL to fetch and summarize papers.
  • 📑 Extracts technical content (architecture, implementation, results).
  • 🔍 Optimized for large text processing with parallel summarization.
  • 🎨 Modern UI built with Streamlit.
  • 📥 Download summary as a Markdown file.

🚀 Tech Stack

Component Technology
Frontend Streamlit
Backend FastAPI
LLM Platform Ollama
LLM Model Google Gemma 3
PDF Processing PyMuPDF (fitz)
Text Chunking LangChain RecursiveCharacterTextSplitter

🎬 Demo

1️⃣ Enter an ArXiv PDF URL
2️⃣ Click "Summarize PDF" 🚀
3️⃣ Get a structured summary with technical insights 📝
4️⃣ Download as Markdown 📥


🔧 Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/arjunprahulal/gemma3_pdf_summarizer.git
cd gemma3_pdf_summarizer

2️⃣ Install Dependencies

pip install -r requirements.txt

3️⃣ Install Ollama and Gemma 3 LLM

Install Ollama - MacOS/Linux

curl -fsSL https://ollama.com/install.sh | sh

Download Gemma 3 Model

ollama pull gemma3:27b

3️⃣ Start the Backend (FastAPI)

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

4️⃣ Start the Frontend (Streamlit)

streamlit run frontend.py

📜 API Endpoints

🔹 Health Check

GET /health

Response:

{"status": "ok", "message": "FastAPI backend is running!"}

🔹 Summarize

Summarize an ArXiv Paper

POST /summarize_arxiv/

Request Body:

{
  "url": "https://arxiv.org/pdf/2401.02385.pdf"
}

Response:

{
  "summary": "Structured summary of the research paper..."
}