feat: initial commit – Frankenbot Multi-Agent Orchestration System
- 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
This commit is contained in:
commit
56d9bc2c76
71 changed files with 5953 additions and 0 deletions
236
QUICKSTART.md
Normal file
236
QUICKSTART.md
Normal file
|
|
@ -0,0 +1,236 @@
|
|||
# 🚀 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! 🎉
|
||||
Loading…
Add table
Add a link
Reference in a new issue