EnronBox combines transformer-based NLP with a cross-platform desktop UI to classify, summarize, and analyze emails from the Enron corpus — with GPU acceleration, Ollama-powered responses, and emotion detection.
Initial label generation can take ~10 minutes per 10k emails on CPU. Training on 100k emails takes ~20 minutes on modern hardware.
Unix / macOS / WSL:
./bin/enron_classifier.shWindows:
./bin/download_enron.cmd
./bin/generate_db.cmd
docker compose up --build
npm --prefix ./apps/enron_classifier run tauri dev- Zero-shot classification into 10 categories (BART transformer)
- Extractive summarization (NLTK, spaCy, Sumy)
- Emotion and sentiment detection with confidence scores
- AI response generation via Ollama (Llama, Mistral, CodeLlama)
- GPU acceleration — CUDA, Apple Silicon MPS, CPU fallback
- Desktop app via Tauri and web interface via React
| Layer | Technology |
|---|---|
| Frontend | React 18, JavaScript, Tailwind CSS |
| Desktop | Tauri, Rust |
| API | Flask 3.1, Python 3.10+ |
| ML/NLP | Transformers, BART, DistilBERT, NLTK, spaCy |
| Database | SQLite |
| AI | Ollama, Llama, Mistral |
| Endpoint | Method | Purpose |
|---|---|---|
/classify |
POST | Email classification |
/summarize |
POST | Text summarization |
/emotion-enhance |
POST | Emotion analysis |
/respond |
POST | AI response generation |
/users |
GET | List Enron users |
/users/<id>/emails |
GET | User's emails |
curl -X POST http://localhost:5050/api/classify/train \
-H "Content-Type: application/json" \
-d '{"enron_dir": "../SQLite_db/enron.db", "max_emails": 500000}'- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit and open a Pull Request
MIT — see LICENSE.
Made with ❤️ by NoamFav