A modern productivity tool that transforms lengthy email threads into concise, actionable summaries with AI-powered action item extraction.
🤖 AI-Powered Summarization - Transform long email threads into bullet-point summaries
📋 Action Item Extraction - Automatically identify tasks, deadlines, and assignees
🎯 Smart Parsing - Clean HTML, remove signatures, and extract key information
🔌 Multiple Interfaces - Streamlit web app, Chrome extension, and REST API
⚡ Fast & Lightweight - Built with FastAPI for high performance
🐳 Docker Ready - Easy deployment with Docker Compose
git clone https://github.com/arjungop/ai-email-summarizer.git
cd ai-email-summarizer
./setup.sh# Clone and setup
git clone https://github.com/arjungop/ai-email-summarizer.git
cd ai-email-summarizer
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Terminal 1: Start Backend API
source venv/bin/activate
uvicorn backend.main:app --reload --port 8080
# Terminal 2: Start Frontend
streamlit run frontend/streamlit_app.py- Web App: http://localhost:8501
- API Docs: http://localhost:8080/docs
- Health Check: http://localhost:8080/health
Mission: Reduce time spent reading long email threads by automatically generating intelligent summaries and extracting actionable insights.
- Email Thread Analysis - Parse and clean email content from various sources
- Intelligent Summarization - Generate concise bullet-point summaries
- Action Item Detection - Extract tasks, deadlines, and assignments
- Multi-Platform Support - Web app, browser extension, and API access
- FastAPI - Modern, fast web framework for building APIs
- Python 3.8+ - Core programming language
- Pydantic - Data validation and serialization
- Uvicorn - ASGI server for running FastAPI
- Transformers Library - Hugging Face transformers for model integration
- LLaMA 3 or GPT-J - Open-source large language models for summarization
- PyTorch - Deep learning framework
- Sentence-Transformers - For text embeddings and similarity
Choose one based on your preference:
- HTML/CSS/JavaScript - Core web technologies
- Chrome Extension APIs - For browser integration
- Webpack - Module bundler
- Manifest V3 - Latest Chrome extension format
- Streamlit - Python web app framework
- Streamlit Components - For custom UI elements
- React.js - Frontend library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Axios - HTTP client for API calls
- SQLite - Lightweight database for storing summaries
- Redis (optional) - Caching for improved performance
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- Nginx - Reverse proxy and load balancer
- GitHub Actions - CI/CD pipeline
- Python Programming - Intermediate level
- Web Development Basics - HTML, CSS, JavaScript
- API Development - REST API concepts
- Machine Learning Basics - Understanding of NLP and transformers
- Python 3.8+
- Node.js 16+ (if building React frontend or Chrome extension)
- Git for version control
- 4GB+ RAM (for running language models)
- GPU (optional but recommended for faster inference)
# Clone the repository
git clone <your-repo-url>
cd email_summarizer
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Download and cache the language model
python scripts/download_model.py# Start the FastAPI server
uvicorn main:app --reload --port 8000streamlit run frontend/streamlit_app.pycd frontend/chrome_extension
npm install
npm run build
# Load unpacked extension in Chromeemail_summarizer/
├── backend/
│ ├── main.py # FastAPI application
│ ├── models/
│ │ ├── summarizer.py # ML model wrapper
│ │ └── email_parser.py # Email parsing logic
│ ├── api/
│ │ ├── routes.py # API endpoints
│ │ └── schemas.py # Pydantic models
│ ├── core/
│ │ ├── config.py # Configuration settings
│ │ └── dependencies.py # Dependency injection
│ └── utils/
│ ├── text_processing.py # Text preprocessing utilities
│ └── action_extraction.py # Action item extraction
├── frontend/
│ ├── streamlit_app.py # Streamlit frontend
│ ├── chrome_extension/ # Chrome extension files
│ │ ├── manifest.json
│ │ ├── popup.html
│ │ ├── popup.js
│ │ └── content.js
│ └── react_app/ # React frontend (optional)
├── models/ # Downloaded model files
├── data/ # Sample data and datasets
├── tests/ # Unit and integration tests
├── docker/ # Docker configuration
├── scripts/ # Utility scripts
├── requirements.txt # Python dependencies
├── docker-compose.yml # Multi-container setup
└── README.md # This file
- Extract email metadata (sender, timestamp, subject)
- Clean HTML and formatting
- Identify email thread structure
- Process email content through LLM
- Generate bullet-point summaries
- Maintain context across thread
- Use NER (Named Entity Recognition) for dates and names
- Pattern matching for action verbs
- Extract deadlines and commitments
POST /api/summarize # Summarize email thread
GET /api/summary/{id} # Retrieve summary by ID
POST /api/extract-actions # Extract action items only
GET /api/health # Health check
-
Python & FastAPI
- FastAPI tutorial and documentation
- RESTful API design principles
- Pydantic for data validation
-
NLP Basics
- Transformers library documentation
- Hugging Face model hub exploration
- Text preprocessing techniques
-
Model Integration
- Loading and using pre-trained models
- Prompt engineering for summarization
- Performance optimization
-
Backend Development
- API endpoint implementation
- Error handling and validation
- Database integration
-
Choose Your Frontend
- Streamlit for rapid prototyping
- Chrome extension for browser integration
- React for full web application
-
Integration
- API consumption
- User interface design
- Error handling and feedback
-
Advanced Features
- Caching and performance optimization
- User authentication
- Summary customization
-
Deployment
- Docker containerization
- Cloud deployment (AWS, GCP, Azure)
- CI/CD pipeline setup
- FastAPI + ML Model Deployment
- Chrome Extension Development
- Streamlit for ML Applications
- Docker for Python Applications
- Accuracy: Summary captures key points (>90%)
- Speed: Processing time <5 seconds per thread
- User Experience: Clean, intuitive interface
- Reliability: 99%+ uptime for API
- Multi-language support
- Email client integrations (Gmail, Outlook)
- Custom summary templates
- Team collaboration features
- Analytics dashboard
- Mobile app development
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details
Happy Coding! 🚀
This project combines modern web development, AI/ML, and practical productivity solutions - perfect for building your full-stack development skills while creating something genuinely useful.