AI Email Contact Tagger — klasyfikacja kontaktów z kontrolą prywatności
Project description
email-tagger
AI Email Contact Tagger — enterprise-grade narzędzie do automatycznej klasyfikacji bazy kontaktów e-mailowych z pełną kontrolą prywatności.
pip install email-tagger
email-tagger classify -i kontakty.csv -o otagowane.csv
🧠 Co robi
Czyta CSV z kontaktami, wysyła dane do AI (OpenAI lub lokalny model), i przypisuje tagi w 3 kategoriach:
| Kategoria | Tagi |
|---|---|
| Branża | e-commerce, saas, fintech, agencja, produkcja, edukacja, zdrowie, nieruchomosci, consulting, it_tech, media, nonprofit, handel, inne |
| Rola | founder, c_level, dyrektor, marketing, sprzedaz, it, hr, operacje, administracja, inne_rola |
| Intencja | potencjalny_klient, aktywny_prospect, partner, zimny_lead, inwestor, media_kontakt, rekruter, nieokreslona |
Wynik: oryginalny CSV + 4 nowe kolumny tag_branza, tag_rola, tag_intencja, tag_pewnosc.
🚀 Szybki start
# Instalacja
pip install email-tagger
# Wymagane: klucz API OpenAI (dla profili cloud)
export OPENAI_API_KEY=sk-proj-...
# Podstawowe użycie
email-tagger classify -i kontakty.csv -o otagowane.csv
# Z pełną kontrolą prywatności i budżetem
email-tagger classify -i kontakty.csv -o out.csv --privacy strict-local --budzet 0.50
# Walidacja pliku bez wysyłania do API
email-tagger validate -i kontakty.csv
# Test na małej próbce
email-tagger sample -i kontakty.csv --size 10
# Szacowanie kosztów przed runem
email-tagger estimate -i kontakty.csv --privacy cloud-minimized
🔒 Profil prywatności
Najważniejsza cecha produktu — kontrola jakie dane opuszczają Twoją maszynę.
strict-local
- Żadne dane nie opuszczają maszyny — używa lokalnego modelu (llama.cpp)
- Email hashowany, PII maskowane
- Idealne dla firm z twardymi wymogami compliance
cloud-minimized (domyślny)
- Tylko niezbędne pola: hash emaila + firma + stanowisko
- Email NIGDY nie jest wysyłany w czystej postaci
- PII w notatkach maskowane przed wysłaniem
- Użytkownik zatwierdza przed runem
enterprise
- Pełne dane, ale z gwarancją zero-data-retention u providera
- Wymaga świadomej zgody użytkownika
email-tagger classify -i kontakty.csv -o out.csv --privacy strict-local
email-tagger classify -i kontakty.csv -o out.csv --privacy cloud-minimized
email-tagger classify -i kontakty.csv -o out.csv --privacy enterprise
💰 Koszty
Model gpt-4o-mini: ~$0.15/1M tokenów input, ~$0.60/1M tokenów output.
Dla 1000 kontaktów (200 znaków każdy): **$0.001-0.005 za całość**.
Zawsze sprawdzaj koszt przed runem:
email-tagger estimate -i kontakty.csv
📦 Artefakty
Po każdym runie generowane są:
otagowane.csv— główny wynikotagowane.report.json— raport z metrykami i dystrybucją tagówotagowane.errors.csv— błędy per kontakt
⚙️ Subkomendy CLI
| Komenda | Opis |
|---|---|
classify |
Główne tagowanie kontaktów |
validate |
Sprawdza CSV bez API |
sample |
Test na małej próbce |
estimate |
Szacuje koszt bez wykonywania |
cache stats |
Statystyki cache |
cache clear |
Czyszczenie cache |
Opcje classify
| Flaga | Opis | Domyślnie |
|---|---|---|
-i, --input |
Ścieżka do CSV | wymagane |
-o, --output |
Ścieżka wyjściowa | wymagane |
-b, --batch |
Rozmiar batcha | 10 |
-m, --model |
Model AI | gpt-4o-mini |
--provider |
Provider (openai, local) | openai |
--privacy |
Profil prywatności | cloud-minimized |
--budzet |
Max koszt w USD | 0 (brak) |
--resume |
Wznów przerwany run | — |
--no-cache |
Wyłącz cache | — |
-y, --yes |
Automatyczne potwierdzenie | — |
--debug |
Logowanie debug | — |
🏗️ Architektura
src/email_tagger/
├── cli.py # Interfejs CLI
├── models.py # Pydantic modele (structured outputs)
├── types.py # Typy pomocnicze
├── cache.py # SQLite cache wyników
├── checkpoint.py # Przyrostowy checkpoint/resume
├── cost_estimator.py # Szacowanie kosztów
├── metrics.py # Metryki i raporty
├── classifiers/
│ └── contact_classifier.py # Główna logika klasyfikacji
├── privacy/
│ ├── redactor.py # Maskowanie PII
│ ├── payload_builder.py # Budowa bezpiecznego payloadu
│ └── policies.py # Polityki prywatności
├── providers/
│ ├── base.py # Abstrakcyjny interfejs providera
│ ├── openai_provider.py # OpenAI API
│ ├── local_provider.py # Lokalny model (llama.cpp)
│ └── factory.py # Fabryka providerów
└── io/
├── readers.py # Wczytywanie CSV
├── writers.py # Zapis CSV
└── artifacts.py # Artefakty runa
🧪 Testy
pip install email-tagger[dev]
pytest tests/ -v
📄 Licencja
MIT — gotowe do komercyjnego użycia.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file email_tagger-0.2.0.tar.gz.
File metadata
- Download URL: email_tagger-0.2.0.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b97f7ebf2a0def9057098585a99b5e0afd43a487ccc6c9bf177ff1bca7e9032f
|
|
| MD5 |
80f5f0e4b8ace78dfb75278283ccf67a
|
|
| BLAKE2b-256 |
73b77f7f8cac0db97dcc5dda39e8f47a98d6079726e12abea07e5a6c22271d9a
|
File details
Details for the file email_tagger-0.2.0-py3-none-any.whl.
File metadata
- Download URL: email_tagger-0.2.0-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18703183c3f8964816591128773b571dbec6ed794931319e2d86733e0c0041db
|
|
| MD5 |
2649d026a06052ee53c437223aaad833
|
|
| BLAKE2b-256 |
6f2cb5472f83831c556d56fffef7e5f04d10bcf0d09f138fa76ab4d1e8c1e8ba
|