https://github.com/jcaperella29/jcap_ai_paper_summarizer
A Flask-based web app that extracts text, summarizes scientific PDFs using Ollama, and retrieves figures from research papers. Supports batch processing via ZIP uploads and provides downloadable summaries.
https://github.com/jcaperella29/jcap_ai_paper_summarizer
ai-summarizer batch-processing flask nlp ollama-api pdf-summarizer research-tool scientific-papers
Last synced: 23 days ago
JSON representation
A Flask-based web app that extracts text, summarizes scientific PDFs using Ollama, and retrieves figures from research papers. Supports batch processing via ZIP uploads and provides downloadable summaries.
- Host: GitHub
- URL: https://github.com/jcaperella29/jcap_ai_paper_summarizer
- Owner: jcaperella29
- Created: 2025-02-24T22:44:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-26T21:08:49.000Z (over 1 year ago)
- Last Synced: 2025-02-26T22:20:27.525Z (over 1 year ago)
- Topics: ai-summarizer, batch-processing, flask, nlp, ollama-api, pdf-summarizer, research-tool, scientific-papers
- Language: Python
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🧠 JCAP AI Paper Summarizer
An AI-powered web application that summarizes research papers using [Ollama](https://ollama.com/) and local LLMs like **Mistral**.
Supports:
- ✅ Single PDF summarization
- ✅ Batch ZIP upload of multiple PDFs
- ✅ Parallelized chunk processing
- ✅ Web-based interface with velvet-blue theming
> This is a frontend interface only. It requires a running Ollama backend.
---
## 🚀 Features
| Feature | Description |
|----------------------|---------------------------------------------|
| 🔍 PDF Parsing | Extracts and chunks full paper text |
| 🧠 LLM Summarization | Sends chunked text to Ollama (Mistral) |
| 📁 ZIP Upload | Summarize multiple PDFs at once |
| ⚡ Parallel Processing | Threads summarization for speed |
| 💾 Download | Save summary as `.txt` |
| 🌈 Themed UI | Inspired by Velvet Room / Persona aesthetic |
---
---
## 🖼️ Screenshots
### 🧠 Main Interface
Upload a single PDF or a batch of papers as a `.zip`:
---
### 📄 Batch Summary Results
Each PDF is summarized in its own tab with section breakdowns:
## 📦 Project Structure
JCAP_AI_Paper_Summarizer/ ├── app.py # Flask app ├── requirements.txt ├── Dockerfile # Dockerfile for frontend (Flask) ├── ollama-backend/
│ └── Dockerfile # Dockerfile to host Ollama server ├── templates/ # HTML templates ├── static/ # Custom CSS styles │ └── style.css
---
## 📂 Requirements
- Python 3.11+
- [Ollama](https://ollama.com/) running and serving models
- Models: `mistral`, `llama3`, etc.
---
## 🔧 Local Dev Setup
### 1. Create virtual environment
in bash run
python3 -m venv venv
source venv/bin/activate
2. Install dependencies
pip install -r requirements.txt
3. Start Flask server
python3 app.py
App runs at:
http://localhost:8080
☁️ Cloud Deployment
✅ Frontend: Flask via Cloud Run
Make sure Ollama is running and publicly accessible.
Build and deploy:
gcloud run deploy jcap-summarizer \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated
Cloud Run will build from the included Dockerfile.
🧠 Ollama Backend (Required)
This app requires an external Ollama backend running at:
http://:11434/api/generate
✳️ Option A: Run Locally
curl -fsSL https://ollama.com/install.sh | sh
ollama serve
ollama pull mistral
✳️ Option B: Run in Docker (Remote or Local)
cd ollama-backend
docker build -t ollama-server .
docker run -d -p 11434:11434 ollama-server
Ollama must be running before deploying the Flask app.
🔒 Production Notes
Ollama backend must be secured if deployed publicly (add HTTPS/auth/reverse proxy).
Cloud Run app expects Ollama at a static IP or domain.
For professional use, we recommend deploying Ollama on:
A GCE VM
A private VPS
Your own server
📄 License
MIT