{"id":25865271,"url":"https://github.com/jcaperella29/jcap_ai_paper_summarizer","last_synced_at":"2026-05-09T20:23:25.383Z","repository":{"id":279312541,"uuid":"938404382","full_name":"jcaperella29/JCAP_AI_Paper_Summarizer","owner":"jcaperella29","description":"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.","archived":false,"fork":false,"pushed_at":"2025-02-26T21:08:49.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T22:20:27.525Z","etag":null,"topics":["ai-summarizer","batch-processing","flask","nlp","ollama-api","pdf-summarizer","research-tool","scientific-papers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jcaperella29.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T22:44:33.000Z","updated_at":"2025-02-26T21:08:52.000Z","dependencies_parsed_at":"2025-02-26T22:20:29.293Z","dependency_job_id":null,"html_url":"https://github.com/jcaperella29/JCAP_AI_Paper_Summarizer","commit_stats":null,"previous_names":["jcaperella29/llm_paper_summarizer","jcaperella29/jcap_ai_paper_summarizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcaperella29%2FJCAP_AI_Paper_Summarizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcaperella29%2FJCAP_AI_Paper_Summarizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcaperella29%2FJCAP_AI_Paper_Summarizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcaperella29%2FJCAP_AI_Paper_Summarizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcaperella29","download_url":"https://codeload.github.com/jcaperella29/JCAP_AI_Paper_Summarizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241447531,"owners_count":19964314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-summarizer","batch-processing","flask","nlp","ollama-api","pdf-summarizer","research-tool","scientific-papers"],"created_at":"2025-03-02T01:34:13.939Z","updated_at":"2026-05-09T20:23:25.350Z","avatar_url":"https://github.com/jcaperella29.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 JCAP AI Paper Summarizer\n\nAn AI-powered web application that summarizes research papers using [Ollama](https://ollama.com/) and local LLMs like **Mistral**.\n\nSupports:\n- ✅ Single PDF summarization\n- ✅ Batch ZIP upload of multiple PDFs\n- ✅ Parallelized chunk processing\n- ✅ Web-based interface with velvet-blue theming\n\n\u003e This is a frontend interface only. It requires a running Ollama backend.\n\n---\n\n## 🚀 Features\n\n| Feature              | Description                                 |\n|----------------------|---------------------------------------------|\n| 🔍 PDF Parsing        | Extracts and chunks full paper text         |\n| 🧠 LLM Summarization  | Sends chunked text to Ollama (Mistral)      |\n| 📁 ZIP Upload         | Summarize multiple PDFs at once             |\n| ⚡ Parallel Processing | Threads summarization for speed            |\n| 💾 Download           | Save summary as `.txt`                      |\n| 🌈 Themed UI          | Inspired by Velvet Room / Persona aesthetic |\n\n---\n\n---\n\n## 🖼️ Screenshots\n\n### 🧠 Main Interface\n\nUpload a single PDF or a batch of papers as a `.zip`:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/Main_interface.png\" alt=\"Main interface\" width=\"700\"\u003e\n\u003c/p\u003e\n\n---\n\n### 📄 Batch Summary Results\n\nEach PDF is summarized in its own tab with section breakdowns:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/results.png\" alt=\"Summary results with tabs\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\n\n\n## 📦 Project Structure\n\nJCAP_AI_Paper_Summarizer/ ├── app.py # Flask app ├── requirements.txt ├── Dockerfile # Dockerfile for frontend (Flask) ├── ollama-backend/\n│ └── Dockerfile # Dockerfile to host Ollama server ├── templates/ # HTML templates ├── static/ # Custom CSS styles │ └── style.css\n\n\n\n\n---\n\n## 📂 Requirements\n\n- Python 3.11+\n- [Ollama](https://ollama.com/) running and serving models\n- Models: `mistral`, `llama3`, etc.\n\n---\n\n## 🔧 Local Dev Setup\n\n### 1. Create virtual environment\n\nin bash run \npython3 -m venv venv\nsource venv/bin/activate\n\n2. Install dependencies\n\npip install -r requirements.txt\n\n3. Start Flask server\npython3 app.py\nApp runs at:\nhttp://localhost:8080\n\n☁️ Cloud Deployment\n✅ Frontend: Flask via Cloud Run\nMake sure Ollama is running and publicly accessible.\n\nBuild and deploy:\n\ngcloud run deploy jcap-summarizer \\\n  --source . \\\n  --platform managed \\\n  --region us-central1 \\\n  --allow-unauthenticated\n\nCloud Run will build from the included Dockerfile.\n🧠 Ollama Backend (Required)\nThis app requires an external Ollama backend running at:\n\n\nhttp://\u003cYOUR_OLLAMA_HOST\u003e:11434/api/generate\n✳️ Option A: Run Locally\ncurl -fsSL https://ollama.com/install.sh | sh\nollama serve\nollama pull mistral\n✳️ Option B: Run in Docker (Remote or Local)\n\ncd ollama-backend\ndocker build -t ollama-server .\ndocker run -d -p 11434:11434 ollama-server\nOllama must be running before deploying the Flask app.\n\n🔒 Production Notes\nOllama backend must be secured if deployed publicly (add HTTPS/auth/reverse proxy).\n\nCloud Run app expects Ollama at a static IP or domain.\n\nFor professional use, we recommend deploying Ollama on:\n\nA GCE VM\n\nA private VPS\n\nYour own server\n\n📄 License\nMIT\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcaperella29%2Fjcap_ai_paper_summarizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcaperella29%2Fjcap_ai_paper_summarizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcaperella29%2Fjcap_ai_paper_summarizer/lists"}