Spaces:
Sleeping
Sleeping
| # Smart Summarizer Web Application | |
| Professional web interface for comparing TextRank, BART, and PEGASUS summarization models. | |
| ## Features | |
| - **Home**: Overview of the three summarization models | |
| - **Single Summary**: Generate summaries with individual models | |
| - **Comparison**: Compare all three models side-by-side | |
| - **Batch Processing**: Process multiple documents simultaneously | |
| - **Evaluation**: View ROUGE metric benchmarks and model performance | |
| ## Design | |
| The UI follows the "Ink Wash" color palette: | |
| - Charcoal (#4A4A4A) | |
| - Cool Gray (#CBCBCB) | |
| - Soft Ivory (#FFFFE3) | |
| - Slate Blue (#6D8196) | |
| ## Running the Application | |
| ### 1. Install Dependencies | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### 2. Start the Server | |
| ```bash | |
| cd webapp | |
| python app.py | |
| ``` | |
| The application will be available at: `http://localhost:5001` | |
| ### 3. Test the Routes | |
| ```bash | |
| python test_webapp.py | |
| ``` | |
| ## File Structure | |
| ``` | |
| webapp/ | |
| βββ app.py # Flask application | |
| βββ templates/ | |
| β βββ home.html # Home page | |
| β βββ single_summary.html # Single summary page | |
| β βββ comparison.html # Model comparison page | |
| β βββ batch.html # Batch processing page | |
| β βββ evaluation.html # Evaluation metrics page | |
| βββ static/ | |
| β βββ css/ | |
| β β βββ style.css # Main stylesheet | |
| β βββ js/ | |
| β βββ evaluation.js # Evaluation page logic | |
| β βββ batch.js # Batch processing logic | |
| βββ uploads/ # Temporary file uploads | |
| ``` | |
| ## API Endpoints | |
| ### POST /api/summarize | |
| Generate a summary with a single model. | |
| **Request:** | |
| ```json | |
| { | |
| "text": "Your text here...", | |
| "model": "bart" // or "textrank", "pegasus" | |
| } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "summary": "Generated summary...", | |
| "metadata": { | |
| "model_name": "BART", | |
| "processing_time": 2.34, | |
| "compression_ratio": 0.22 | |
| } | |
| } | |
| ``` | |
| ### POST /api/compare | |
| Compare all three models on the same text. | |
| **Request:** | |
| ```json | |
| { | |
| "text": "Your text here..." | |
| } | |
| ``` | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "results": { | |
| "textrank": { "summary": "...", "metadata": {...} }, | |
| "bart": { "summary": "...", "metadata": {...} }, | |
| "pegasus": { "summary": "...", "metadata": {...} } | |
| } | |
| } | |
| ``` | |
| ### POST /api/upload | |
| Upload a file (.txt, .md, .pdf, .docx) and extract text. | |
| **Request:** multipart/form-data with file | |
| **Response:** | |
| ```json | |
| { | |
| "success": true, | |
| "text": "Extracted text...", | |
| "filename": "document.pdf", | |
| "word_count": 1234 | |
| } | |
| ``` | |
| ## Supported File Types | |
| - Plain text (.txt, .md) | |
| - PDF documents (.pdf) | |
| - Word documents (.docx, .doc) | |
| ## Model Information | |
| ### TextRank | |
| - Type: Extractive | |
| - Algorithm: Graph-based PageRank | |
| - Speed: Very fast (~0.03s) | |
| - Best for: Quick summaries, keyword extraction | |
| ### BART | |
| - Type: Abstractive | |
| - Algorithm: Transformer encoder-decoder | |
| - Speed: Moderate (~9s on CPU) | |
| - Best for: Fluent, human-like summaries | |
| ### PEGASUS | |
| - Type: Abstractive | |
| - Algorithm: Gap Sentence Generation | |
| - Speed: Moderate (~6s on CPU) | |
| - Best for: High-quality abstractive summaries | |
| ## Notes | |
| - Models are loaded lazily (on first use) to reduce startup time | |
| - GPU acceleration is supported if CUDA is available | |
| - All models generate similar compression ratios (~22%) for fair comparison | |
| - File uploads are limited to 16MB | |