Skip to content

Latest commit

Β 

History

91 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ SummarIQ – AI-Powered Scientific Paper Summarizer

Extract β€’ Understand β€’ Summarize β€’ Visualize (PDF + LaTeX) SummarIQ is an AI-powered system designed to summarize scientific research papers written in PDF or LaTeX. It extracts sections, equations, metadata, and produces structured summaries using transformer-based models like T5-small and BART-large.

This project includes:

  • AI summarization models (T5, BART)
  • LaTeX equation extraction & rendering
  • FastAPI backend
  • Gradio UI
  • Docker deployment
  • Prometheus + Grafana monitoring
  • iOS UI prototypes
  • Remote GPU inference (Kaggle)

πŸŽ₯ System Demo Video

Watch the system in action:

Watch the demo


Project Structure

β”œβ”€β”€ App design
β”‚Β Β  β”œβ”€β”€ Purple Pink Gradient Login Page Mobile Prototype (3)
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ 1.jpg
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ 2.jpg
β”‚Β Β  β”‚Β Β  └── 3.jpg
β”‚Β Β  β”œβ”€β”€ Screen_1.png
β”‚Β Β  β”œβ”€β”€ Screen_2.png
β”‚Β Β  └── Screen_3.png
β”œβ”€β”€ deployment
β”‚Β Β  β”œβ”€β”€ docker-compose.yml
β”‚Β Β  β”œβ”€β”€ Dockerfile
β”‚Β Β  └── gradio_app.py
β”œβ”€β”€ documentation
β”‚Β Β  β”œβ”€β”€ plot_images
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Architechture_diagram.png
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ fairness_explainability.png
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ githubrepo.png
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ sample_equation_output.png
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ sample_summary_output.png
β”‚Β Β  β”‚Β Β  └── shap_summary.png
β”‚Β Β  β”œβ”€β”€ Poster.pdf
β”‚Β Β  β”œβ”€β”€ Project_report.pdf
β”‚Β Β  └── SummarIQ_project_template.pdf
β”œβ”€β”€ monitoring
β”‚Β Β  β”œβ”€β”€ grafana
β”‚Β Β  β”‚Β Β  └── summariq_graphana_dashboard.json
β”‚Β Β  β”œβ”€β”€ metrices_report
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ metrics_report_valset.csv
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ monitoring_images
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ cpu_usage.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Fairlear_matrices.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ feedback_latest_rating.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ feedback_no_comments_total.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ feedback_rating.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ feedback_total.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ feedback_with_comments_total.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ localhost_metrices_log.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request_count.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request_latency_seconds.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── shap_values.png
β”‚Β Β  β”‚Β Β  └── structured_summary.csv
β”‚Β Β  └── prometheus
β”‚Β Β      β”œβ”€β”€ alert_rules.yml
β”‚Β Β      └── prometheus.yml
β”œβ”€β”€ Notebooks
β”‚Β Β  β”œβ”€β”€ bart_train.ipynb
β”‚Β Β  β”œβ”€β”€ kaggle_server_run.ipynb
β”‚Β Β  β”œβ”€β”€ risk_management.ipynb
β”‚Β Β  β”œβ”€β”€ t5_model_test.ipynb
β”‚Β Β  β”œβ”€β”€ test_summarize.ipynb
β”‚Β Β  β”œβ”€β”€ test_t5_small.ipynb
β”‚Β Β  β”œβ”€β”€ training.ipynb
β”‚Β Β  └── valset_test.ipynb
β”œβ”€β”€ README.md
β”œβ”€β”€ requirements_projects.txt
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ src
 Β Β  β”œβ”€β”€ __pycache__
 Β Β  β”‚Β Β  └── app.cpython-310.pyc
 Β Β  β”œβ”€β”€ app.py
 Β Β  β”œβ”€β”€ data
 Β Β  β”‚Β Β  β”œβ”€β”€ latex_extracted.json
 Β Β  β”‚Β Β  └── Test_pdf
 Β Β  β”‚Β Β      β”œβ”€β”€ 2404.08534v2.pdf
 Β Β  β”‚Β Β      β”œβ”€β”€ sm.pdf
 Β Β  β”‚Β Β      β”œβ”€β”€ sm.tex
 Β Β  β”‚Β Β      β”œβ”€β”€ Tower_V3.tex
 Β Β  β”‚Β Β      └── tower.pdf
 Β Β  β”œβ”€β”€ equation_renderer
 Β Β  β”‚Β Β  β”œβ”€β”€ __pycache__
 Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ app.cpython-310.pyc
 Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ eqapp.cpython-310.pyc
 Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ quicklatex_app.cpython-310.pyc
 Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ quicklatex_renderer.cpython-310.pyc
 Β Β  β”‚Β Β  β”‚Β Β  └── renderer.cpython-310.pyc
 Β Β  β”‚Β Β  β”œβ”€β”€ eqapp.py
 Β Β  β”‚Β Β  └── renderer.py
 Β Β  β”œβ”€β”€ extractor
 Β Β  β”‚Β Β  β”œβ”€β”€ __pycache__
 Β Β  β”‚Β Β  β”‚Β Β  └── latex_extractor.cpython-310.pyc
 Β Β  β”‚Β Β  β”œβ”€β”€ extract_usingcv.py
 Β Β  β”‚Β Β  └── latex_extractor.py
 Β Β  β”œβ”€β”€ models
 Β Β  β”‚Β Β  β”œβ”€β”€ __pycache__
 Β Β  β”‚Β Β  β”‚Β Β  └── summarizer_remote.cpython-310.pyc
 Β Β  β”‚Β Β  └── summarizer_remote.py
 Β Β  β”œβ”€β”€ summarizer_kaggle.py
 Β Β  β”œβ”€β”€ summarizer_local.py
 Β Β  └── utils
 Β Β      β”œβ”€β”€ load_data.py
 Β Β      └── response_server
 Β Β          β”œβ”€β”€ api_response.json
 Β Β          └── response_without_T5server.json

Features

AI Summarization

  • T5-small (fast, lightweight)
  • BART-large (high accuracy)
  • Section-wise summarization
  • Handles long scientific text

LaTeX Equation Handling

  • Detects inline & block equations
  • Renders equations as images
  • Ranks important equations

FastAPI Backend

  • /summarize-latex endpoint
  • PDF/LaTeX processing
  • JSON structured output

Gradio UI

  • Upload interface
  • Real-time response
  • Feedback collection

Deployment

  • Dockerfile + docker-compose
  • Separate services for API, Gradio, Prometheus
  • Works on local + cloud environments

Monitoring

  • Prometheus for metric scraping
  • Grafana dashboards
  • Custom metric: summariq_feedback_total

iOS Mobile App Prototype

  • Screens included in App design/
  • Designed for future live deployment

Installation

1. Clone the repository

git clone https://github.com/yourusername/SummarIQ.git
cd SummarIQ

2.Create a virtual environment

python3 -m venv venv
source venv/bin/activate

3. Install dependencies

This project uses two separate requirements files:

  • requirements_projects.txt(local development)

    pip install -r requirements_projects.txt
    
  • requirements.txt(Docker/production)

    pip install -r requirements.txt
    

Run with Docker

  • Build containers

    docker-compose build
    
  • Start services

    docker-compose up
    

This starts:

Run Locally (without Docker)

Start FastAPI server

uvicorn app:app --reload --port 8000

Start Gradio UI

python gradio_app.py

API Usage

Endpoint

POST /summarize-latex

Example (cURL)

curl -X POST -F "file=@sample.tex" http://localhost:8000/summarize-latex

Output Example

utils/response_server/api_response.json

Model Pipeline

  • Receive LaTeX/PDF
  • Extract sections & equations
  • Preprocess scientific text
  • Summarize using T5/BART
  • Produce structured JSON output
  • Render LaTeX equations
  • Display summary in Gradio / iOS UI

Monitoring (Prometheus + Grafana)

Metrics collected:

  • API latency (p50, p90, p95)
  • Total requests
  • Feedback count summariq_feedback_total
  • CPU/RAM usage
  • Docker container performance
  • Error rates Dashboards:
  • Grafana β†’ http://localhost:3000
  • Prometheus β†’ http://localhost:9090

iOS App Prototype

Located in App design/: Includes:

  • Login screen
  • Upload screen
  • Processing screen
  • Summary UI design Powered by SwiftUI (planned for Phase 2 deployment).

Roadmap

Phase 2

  • Fine-tuned summarization (domain-specific)
  • Full iOS app integration
  • Deploy backend to AWS/GCP
  • Real-time feedback storage in DB (MongoDB/PostgreSQL)
  • Advanced Grafana dashboards
  • Semantic equation understanding
  • User accounts + authentication

About

AI-Powered PDF Summarizer Application for Scientific Papers

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages