- Flask Web-App mit Dashboard, Chat, Orchestrator, Tasks, Dateien, Emails, Agenten, Settings - Email-Poller (IMAP) mit SQLite-Journal als Failsafe (kein Emailverlust bei Absturz) - Failsafe-Fenster und Poll-Intervall zur Laufzeit via /settings konfigurierbar - TaskWorker: IMAP Seen-Flag erst nach erfolgreichem Task-Abschluss - Whitelist-Filter: eric.fischer, p.dyderski, georg.tschare (gmail + signtime.media), *@diversityball.at - 9 Agenten: researcher, tax_advisor, document_editor, location_manager, program_manager, catering_manager, musik_rechte_advisor, zusammenfasser, orchestration_ui - Diversity Ball Wien 2026 – Wissensdatenbank, Sponsoringverträge, Email-Vorlagen
236 lines
5.6 KiB
Markdown
236 lines
5.6 KiB
Markdown
# 🚀 Quick Start - Neue Features
|
||
|
||
## 1️⃣ Streaming-UI (Sofort verfügbar)
|
||
|
||
### Wie verwendet man es
|
||
|
||
1. **Gehe zur Seite** → `/orchestrator`
|
||
2. **Gib eine Anfrage ein** (z.B. "Tell me about Diversity Ball")
|
||
3. **Klick auf "Live-Antwort anfordern"** (neuer Button)
|
||
4. **Beobachte die Live-Updates**:
|
||
- ⏳ "Agent arbeitet..." - Status
|
||
- 🤖 Agent-Name wird angezeigt
|
||
- Schrittweise Antwort-Chunks erscheinen
|
||
- ✓ "Verarbeitung abgeschlossen"
|
||
|
||
### Unterschied zu "Klassisch senden"
|
||
- **Live-Antwort**: Server-Sent Events (SSE) Streaming
|
||
- Echte Echtzeit Updates
|
||
- Bessere UX bei langen Antworten
|
||
- Timeout: 300 Sekunden (5 Minuten)
|
||
|
||
- **Klassisch senden**: POST Form
|
||
- Traditionelle Request-Response
|
||
- Wartet auf komplette Antwort
|
||
- Alte Methode weiterhin verfügbar
|
||
|
||
---
|
||
|
||
## 2️⃣ Email-Integration
|
||
|
||
### Minimal Setup (Gmail - 5 Minuten)
|
||
|
||
#### Schritt 1: 2FA aktivieren
|
||
```
|
||
Google Account → Sicherheit → "Bestätigung in zwei Schritten" aktivieren
|
||
```
|
||
|
||
#### Schritt 2: App-Passwort generieren
|
||
```
|
||
Gehe zu: https://myaccount.google.com/apppasswords
|
||
- Wähle: "Mail" + "Windows"
|
||
- Kopiere 16-Zeichen Passwort
|
||
```
|
||
|
||
#### Schritt 3: Umgebungsvariablen setzen
|
||
```bash
|
||
export IMAP_SERVER=imap.gmail.com
|
||
export SMTP_SERVER=smtp.gmail.com
|
||
export EMAIL_ADDRESS=deine-email@gmail.com
|
||
export EMAIL_PASSWORD=app-passwort-hier
|
||
export IMAP_PORT=993
|
||
export SMTP_PORT=587
|
||
```
|
||
|
||
#### Schritt 4: Starte App neu
|
||
```bash
|
||
python3 app.py
|
||
```
|
||
|
||
#### Schritt 5: Gehe zu `/emails`
|
||
```
|
||
http://localhost:5000/emails
|
||
```
|
||
|
||
### Feature-Übersicht
|
||
|
||
#### 📬 Emails empfangen
|
||
- Automatisch letzte 10 Emails laden
|
||
- Subject, From, Date, Preview anzeigen
|
||
- Klick auf Email → Modal mit Body-Text
|
||
- Lazy Loading (Body wird nur beim Klick geladen)
|
||
|
||
#### ✉️ Emails versenden
|
||
- Neue Email-Form im linken Panel
|
||
- An, Betreff, Nachricht ausfüllen
|
||
- "Versenden" Button
|
||
- Success/Error Message nach Versand
|
||
|
||
#### ⚙️ Status-Display
|
||
- Green Badge: "✓ Konfiguriert | Email: deine@email.com"
|
||
- Orange Alert: Konfiguration erforderlich
|
||
- Anleitung direkt in der UI
|
||
|
||
---
|
||
|
||
## 📋 Konfiguration
|
||
|
||
### .env Datei (Alternative)
|
||
|
||
```bash
|
||
# Option 1: .env Datei erstellen
|
||
cp .env.example .env
|
||
|
||
# Option 2: Bearbeite .env mit deinen Credentials
|
||
nano .env
|
||
# oder
|
||
cat > .env << EOF
|
||
IMAP_SERVER=imap.gmail.com
|
||
SMTP_SERVER=smtp.gmail.com
|
||
EMAIL_ADDRESS=deine-email@gmail.com
|
||
EMAIL_PASSWORD=app-passwort
|
||
IMAP_PORT=993
|
||
SMTP_PORT=587
|
||
EOF
|
||
```
|
||
|
||
### Andere Provider
|
||
|
||
**Outlook/Office365:**
|
||
```
|
||
IMAP_SERVER=imap-mail.outlook.com
|
||
SMTP_SERVER=smtp-mail.outlook.com
|
||
```
|
||
|
||
**Yahoo:**
|
||
```
|
||
IMAP_SERVER=imap.mail.yahoo.com
|
||
SMTP_SERVER=smtp.mail.yahoo.com
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 Tests
|
||
|
||
```bash
|
||
# Teste dass alles funktioniert
|
||
python3 test_features.py
|
||
|
||
# Output:
|
||
# ✓ PASS: Imports
|
||
# ✓ PASS: App Syntax
|
||
# ✓ PASS: Email Config
|
||
# ✓ PASS: Templates
|
||
# ✓ PASS: SSE Support
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 Datei-Referenz
|
||
|
||
| Datei | Änderung | Beschreibung |
|
||
|-------|----------|-------------|
|
||
| `app.py` | ✏️ Geändert | +Email-Funktionen, +SSE-Route, Timeout 300s |
|
||
| `templates/orchestrator.html` | ✏️ Geändert | +Streaming-Button, +JavaScript Handler |
|
||
| `templates/emails.html` | 📄 Neu | Email-Management UI |
|
||
| `.env.example` | 📄 Neu | Email-Config Template |
|
||
| `FEATURES.md` | 📄 Neu | Detaillierte Feature-Doku |
|
||
| `CHANGES.md` | 📄 Neu | Alle Änderungen gelistet |
|
||
| Alle anderen Templates | ✏️ Geändert | +Email Navigation Link |
|
||
|
||
---
|
||
|
||
## ❓ FAQs
|
||
|
||
### F: Funktioniert Streaming auch ohne Email-Config?
|
||
**A:** Ja! Streaming und Email sind unabhängig. Streaming funktioniert sofort, Email benötigt Config.
|
||
|
||
### F: Kann ich mehrere Email-Accounts verwenden?
|
||
**A:** Aktuell nur einer. Könnte erweitert werden (siehe FEATURES.md → Nächste Schritte).
|
||
|
||
### F: Sicherheit - Wo werden Passwörter gespeichert?
|
||
**A:** Nur in Umgebungsvariablen/`.env`. Nicht im Code, nicht in der Datenbank. SSL/TLS für alle Verbindungen.
|
||
|
||
### F: Was passiert wenn Email-Config fehlt?
|
||
**A:** `/emails` zeigt orange Alert mit Setup-Anleitung. Rest der App funktioniert normal.
|
||
|
||
### F: Ist das Streaming wirklich "live"?
|
||
**A:** Ja! Server-Sent Events mit 50-Zeichen Chunks. Sie sehen Antwort während sie generiert wird.
|
||
|
||
### F: Können Anhänge/Attachments empfangen/gesendet werden?
|
||
**A:** Aktuell nicht. Ist aber einfach zu erweitern (siehe FEATURES.md → Nächste Schritte).
|
||
|
||
---
|
||
|
||
## 🔧 Troubleshooting
|
||
|
||
### Email-Login schlägt fehl (Gmail)
|
||
```
|
||
Error: [AUTH] Application-specific password required
|
||
↓
|
||
Lösung: 2FA muss aktiviert sein
|
||
Gehe zu: https://myaccount.google.com/apppasswords
|
||
```
|
||
|
||
### IMAP-Connection Timeout
|
||
```
|
||
Error: Socket timeout
|
||
↓
|
||
Lösung: Firewall/ISP blockiert Port 993
|
||
Versuche: VPN oder anderen Provider (Outlook, Yahoo)
|
||
```
|
||
|
||
### Streaming zeigt Fehler im Browser-Console
|
||
```
|
||
Error: fetch failed
|
||
↓
|
||
Lösung:
|
||
1. App muss laufen (python3 app.py)
|
||
2. URL muss richtig sein (http://localhost:5000)
|
||
3. Prompt darf nicht leer sein
|
||
```
|
||
|
||
### Templates nicht gefunden (404)
|
||
```
|
||
Error: TemplateNotFound: emails.html
|
||
↓
|
||
Lösung: Stelle sicher dass templates/emails.html existiert
|
||
ls -la templates/emails.html
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 Support
|
||
|
||
Schaue dir an:
|
||
1. `FEATURES.md` - Detaillierte Feature-Dokumentation
|
||
2. `CHANGES.md` - Alle Code-Änderungen
|
||
3. `test_features.py` - Funktionalitäts-Tests
|
||
4. `app.py` - Source Code mit Kommentaren
|
||
|
||
---
|
||
|
||
## ✅ Checkliste für Setup
|
||
|
||
- [ ] Teste Streaming-UI (gehe zu `/orchestrator`)
|
||
- [ ] Lese `.env.example` (verstehe Email-Config)
|
||
- [ ] Aktiviere Gmail 2FA (wenn Gmail verwendet)
|
||
- [ ] Generiere App-Passwort
|
||
- [ ] Setze Umgebungsvariablen
|
||
- [ ] Starte App neu: `python3 app.py`
|
||
- [ ] Gehe zu `/emails` und teste Send/Receive
|
||
- [ ] Laufe `test_features.py` zum Validieren
|
||
|
||
---
|
||
|
||
Viel Spaß mit den neuen Features! 🎉
|