AI-Note-Summarizer / README.md
midlajvalappil's picture
Update README.md
53f4f5d verified

A newer version of the Streamlit SDK is available: 1.55.0

Upgrade
metadata
title: AI Note Summarizer
emoji: πŸš€
colorFrom: red
colorTo: red
sdk: streamlit
app_file: src/streamlit_app.py
app_port: 8501
tags:
  - streamlit
pinned: false
short_description: Streamlit template space
license: mit

πŸ“ AI Notes Summarizer

AI Notes Summarizer Logo

License: MIT Python 3.8+ Streamlit Docker Transformers

GitHub stars GitHub forks GitHub issues

A powerful web application that transforms lengthy documents and notes into concise, bullet-point summaries using state-of-the-art AI models.


πŸ“‹ Table of Contents


✨ Features

  • PDF Processing: Upload PDF files and extract text content automatically
  • Direct Text Input: Paste text content directly for immediate summarization
  • AI-Powered Summarization: Uses Hugging Face Transformers (BART, T5) for high-quality summaries
  • Bullet-Point Format: Clean, readable bullet-point summaries
  • Multiple AI Models: Choose from different pre-trained models
  • Customizable Length: Adjust summary length (Short, Medium, Long)
  • Progress Tracking: Real-time progress indicators during processing
  • Download Summaries: Save generated summaries as text files
  • Statistics: View compression ratios and word counts
  • Error Handling: Comprehensive error handling and user feedback

πŸš€ Quick Start

Option 1: Docker (Recommended)

Prerequisites

  • Docker and Docker Compose installed
  • Internet connection (for downloading AI models)

Using Docker Compose (Easiest)

# Clone the repository
git clone https://github.com/midlaj-muhammed/AI-Note-Summarizer.git
cd AI-Note-Summarizer

# Start the application
docker-compose up -d

# Access the application at http://localhost:8501

Using Docker Scripts

# Build the Docker image
./docker-build.sh

# Run the container
./docker-run.sh

# For development with live code reloading
./docker-dev.sh

Manual Docker Commands

# Build the image
docker build -t ai-notes-summarizer .

# Run the container
docker run -p 8501:8501 ai-notes-summarizer

Option 2: Local Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)
  • Internet connection (for downloading AI models)

Installation Steps

  1. Clone the repository

    git clone https://github.com/midlaj-muhammed/AI-Note-Summarizer.git
    cd AI-Note-Summarizer
    
  2. Install dependencies

    pip install -r requirements.txt
    
  3. Run the application

    streamlit run app.py
    
  4. Open your browser

    • The application will automatically open at http://localhost:8501
    • If it doesn't open automatically, navigate to the URL manually

πŸ“– Usage Guide

PDF Summarization

  1. Upload PDF: Click on the "πŸ“„ PDF Upload" tab
  2. Select File: Choose a PDF file (max 10MB)
  3. Process: Click "πŸ“– Extract & Summarize PDF"
  4. Review: View the extracted text preview
  5. Get Summary: The AI will generate a bullet-point summary
  6. Download: Save the summary using the download button

Text Summarization

  1. Input Text: Click on the "πŸ“ Text Input" tab
  2. Paste Content: Enter or paste your text (minimum 100 characters)
  3. Summarize: Click "πŸš€ Summarize Text"
  4. Review: View the generated summary
  5. Download: Save the summary as needed

Settings

  • AI Model: Choose from BART (recommended), T5, or DistilBART
  • Summary Length: Select Short, Medium, or Long summaries
  • Statistics: View word counts and compression ratios

πŸ› οΈ Technical Details

Architecture

ai-notes-summarizer/
β”œβ”€β”€ app.py                 # Main Streamlit application
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ pdf_processor.py   # PDF text extraction
β”‚   β”œβ”€β”€ text_summarizer.py # AI summarization
β”‚   └── utils.py          # Utility functions
β”œβ”€β”€ requirements.txt       # Python dependencies
└── README.md             # This file

AI Models

  • BART (facebook/bart-large-cnn): Best quality, recommended for most use cases
  • T5 Small: Faster processing, good for shorter texts
  • DistilBART: Balanced performance and speed

Dependencies

  • Streamlit: Web application framework
  • Transformers: Hugging Face AI models
  • PyTorch: Deep learning framework
  • PyPDF2: PDF text extraction
  • Additional utilities: See requirements.txt

πŸ”§ Configuration

Model Selection

You can change the default model by modifying the TextSummarizer initialization in app.py:

text_summarizer = TextSummarizer(model_name="your-preferred-model")

Summary Length

Adjust default summary lengths in modules/text_summarizer.py:

self.min_summary_length = 50  # Minimum words
self.max_summary_length = 300  # Maximum words

File Size Limits

Modify PDF file size limits in modules/pdf_processor.py:

self.max_file_size = 10 * 1024 * 1024  # 10MB

🚨 Troubleshooting

Common Issues

  1. Model Loading Errors

    • Ensure stable internet connection
    • Check available disk space (models can be 1-2GB)
    • Try switching to a smaller model (T5 Small or DistilBART)
  2. PDF Processing Issues

    • Ensure PDF is not encrypted
    • Check if PDF contains readable text (not just images)
    • Try with a smaller PDF file
  3. Memory Errors

    • Reduce text length
    • Close other applications
    • Try using CPU instead of GPU
  4. Slow Performance

    • Use GPU if available
    • Choose smaller models for faster processing
    • Process shorter text chunks

Error Messages

  • "Text is too short": Minimum 100 characters required
  • "No readable text found": PDF may contain only images
  • "Model loading error": Check internet connection
  • "Out of memory": Reduce text length or restart application

🎯 Best Practices

For Best Results

  1. Text Quality: Use well-formatted, coherent text
  2. Length: Optimal text length is 500-5000 words
  3. Content: Works best with structured content (articles, reports, notes)
  4. Model Choice: Use BART for academic/formal content, T5 for general text

Performance Tips

  1. GPU Usage: Enable CUDA for faster processing
  2. Batch Processing: Process multiple documents separately
  3. Model Caching: Models are cached after first load
  4. Text Preprocessing: Clean text improves summary quality

πŸ–ΌοΈ Screenshots

Main Interface

Main Interface Clean and intuitive interface with PDF upload and text input options

PDF Processing

PDF Processing Real-time PDF processing with progress indicators

Summary Results

Summary Results Bullet-point summaries with statistics and download options

Settings Panel

Settings Panel Customizable AI model selection and summary length options

Note: Screenshots are placeholders. Actual screenshots will be added once the application is deployed.

πŸŽ₯ Demo

πŸš€ Live Demo (Coming Soon)

πŸ“Ή Demo Video: Watch on YouTube (Coming Soon)

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

🐳 Docker Deployment

Production Deployment

For production deployment, use the standard Docker Compose configuration:

# Start in production mode
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the application
docker-compose down

# Update the application
docker-compose pull
docker-compose up -d

Development Mode

For development with live code reloading:

# Start development environment
docker-compose -f docker-compose.dev.yml up

# Or use the convenience script
./docker-dev.sh

Docker Configuration

Environment Variables

  • STREAMLIT_SERVER_PORT: Port for the application (default: 8501)
  • TRANSFORMERS_CACHE: Cache directory for AI models
  • MAX_FILE_SIZE_MB: Maximum PDF file size (default: 10MB)

Volumes

  • model_cache: Persistent storage for downloaded AI models
  • logs: Application logs
  • uploads: Temporary file storage (optional)

Resource Limits

  • Memory: 4GB limit, 2GB reserved
  • CPU: 2 cores limit, 1 core reserved

Docker Troubleshooting

  1. Container won't start: Check logs with docker-compose logs
  2. Out of memory: Increase Docker memory limits
  3. Model download fails: Ensure internet connectivity
  4. Permission issues: Check file ownership and Docker user settings

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

🌟 Ways to Contribute

  • ⭐ Star this repository if you find it useful
  • πŸ› Report bugs by opening an issue
  • πŸ’‘ Suggest features or improvements
  • πŸ“– Improve documentation
  • πŸ”§ Submit pull requests with bug fixes or new features

πŸš€ Getting Started

  1. Fork the repository

    # Click the "Fork" button on GitHub, then:
    git clone https://github.com/YOUR-USERNAME/AI-Note-Summarizer.git
    cd AI-Note-Summarizer
    
  2. Create a feature branch

    git checkout -b feature/amazing-feature
    
  3. Make your changes

    • Follow the existing code style
    • Add tests for new features
    • Update documentation as needed
  4. Test your changes

    # Run basic tests
    python test_basic.py
    
    # Test Docker build
    ./docker-test.sh
    
  5. Submit a pull request

    git add .
    git commit -m "Add amazing feature"
    git push origin feature/amazing-feature
    

πŸ“‹ Development Guidelines

  • Code Style: Follow PEP 8 for Python code
  • Documentation: Update README.md for new features
  • Testing: Add tests for new functionality
  • Docker: Ensure Docker compatibility
  • Dependencies: Keep requirements.txt updated

πŸ› Reporting Issues

When reporting issues, please include:

  • Environment details (OS, Python version, Docker version)
  • Steps to reproduce the issue
  • Expected vs actual behavior
  • Error messages or logs
  • Screenshots if applicable

Report an Issue β†’

πŸ’¬ Discussions

Join our community discussions:

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ› οΈ Built With

🎯 Inspiration

  • Inspired by the need for efficient document summarization
  • Built to help students, researchers, and professionals save time
  • Leverages state-of-the-art AI models for high-quality summaries

πŸ€– AI Models

Special thanks to the teams behind these amazing models:

πŸ‘₯ Contributors

Thanks to all contributors who have helped improve this project!

Contributors

πŸ“ž Support

If you encounter any issues or have questions:

πŸ” Self-Help Resources

  1. πŸ“– Check the troubleshooting section above
  2. πŸ› Review error messages for specific guidance
  3. πŸ“¦ Ensure all dependencies are properly installed
  4. πŸ”„ Try with different models or settings
  5. 🐳 For Docker issues, check container logs: docker-compose logs

πŸ’¬ Get Help

🌟 Show Your Support

If this project helped you, please consider:

  • ⭐ Starring the repository
  • 🍴 Forking and contributing
  • πŸ“’ Sharing with others
  • πŸ’ Sponsoring the project (Coming Soon)

Made with ❀️ by Muhammed Midlaj

Happy Summarizing! πŸ“βœ¨

GitHub