Summify is a summarization project with two separate applications:
- Abstractive Summarizer: A Streamlit app that summarizes input text and uploaded documents using a transformer model.
- Extractive Summarizer: A Flask app that summarizes text and article URLs using spaCy and LexRank-style sentence scoring.
Abstractive-Summify-main/: Streamlit-based abstractive summarizerExtractive-Summify/: Flask-based extractive summarizer
- Summarize pasted text
- Summarize uploaded PDF and DOCX files in the abstractive app
- Summarize article content from a URL in the extractive app
- Display readability metrics in the extractive app
- Abstractive app: Streamlit, Transformers, Torch, PyPDF2, python-docx
- Extractive app: Flask, spaCy, Sumy, BeautifulSoup, textstat
- Language model:
sshleifer/distilbart-cnn-12-6
git clone https://github.com/AnshShah-18/Summify.git
cd Summifycd Abstractive-Summify-main
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.pyNotes:
- The app runs locally at
http://localhost:8501by default. - The first summarization request may take longer while the model downloads and caches.
cd Extractive-Summify
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m spacy download en_core_web_sm
flask --app app.py runNotes:
- The Flask app runs locally at
http://127.0.0.1:5000by default. - If you want to use a different port, run
flask --app app.py run --port 5001.
- Open the Streamlit app.
- Choose either
Summarize TextorSummarize Document. - Paste text or upload a
.pdf/.docxfile. - Click the summarize button to generate a summary.
- Open the Flask app.
- Paste text into the text summarizer, or provide a URL.
- Submit the form to generate an extractive summary.
- Review the readability metrics shown in the UI.
- This repository does not use a single root
requirements.txt; each app has its own dependency file. - The current abstractive app uses a BART-based summarization model rather than T5.
- Summary length is currently determined by the app logic and is not user-configurable in the UI.
- Add one-click setup scripts for both apps
- Unify the project structure and documentation
- Add tests for startup and summarization flows
- Improve model and UI consistency across both apps
Contributions are welcome. Feel free to open an issue or submit a pull request.