542 lines
27 KiB
Markdown
542 lines
27 KiB
Markdown
<!-- status: plan -->
|
||
<!-- started: 2026-04-12 -->
|
||
<!-- component: gateway | frontend-nyla | platform -->
|
||
|
||
# Investor-Demo Dienstag — Live Product Demo (20 Min)
|
||
|
||
## Beschreibung und Kontext
|
||
|
||
**Was:** 20-Minuten Live-Demo von PowerON PORTA für Investoren und Treuhänder am Dienstag.
|
||
**Wer präsentiert:** Kollegen präsentieren Keynotes (Use Cases), Patrick (CTO/CEO) zeigt die Plattform live.
|
||
**Publikum:** Investoren (ROI, Skalierbarkeit, Marktdifferenzierung) + Treuhänder (Praxisnutzen, Datenschutz, Zeitersparnis).
|
||
|
||
**Business-Treiber:** Die Demo muss in 20 Min zeigen, dass PowerON kein Konzept ist, sondern ein funktionierendes Produkt mit echtem Kundennutzen. Investoren wollen Traktion sehen, Treuhänder wollen sich wiedererkennen.
|
||
|
||
**Abhängigkeiten:**
|
||
- Trustee-Tooling-Plan: `c-work/1-plan/2026-04-customer-trustee-tooling-and-demo-prep.md` (Phase 1–3 erledigt ✅)
|
||
- Customer Demo Enablement: `c-work/1-plan/2026-04-customer-demo-enablement.md` (Analyse vorhanden)
|
||
- UI-Enhancements: `c-work/1-plan/2026-04-porta-ui-enhancements-team-meeting.md`
|
||
|
||
**Risiko bei Nicht-Umsetzung:** Demo scheitert live, Investoren sehen nur Slides statt funktionierendes Produkt. Vertrauensverlust.
|
||
|
||
---
|
||
|
||
## Fokus und kritische Details
|
||
|
||
### Was die Audienz überzeugt (Schritt 1 — gemeinsam klären)
|
||
|
||
**Investoren wollen sehen:**
|
||
1. **Funktionierendes Produkt** — kein Mockup, echte Datenverarbeitung
|
||
2. **Marktdifferenzierung** — warum nicht ChatGPT/Copilot/Langdock?
|
||
3. **Wiederholbarkeit** — keine Einmal-Demo, sondern konfigurierbare Workflows
|
||
4. **Skalierbarkeit** — Multi-Tenant, Multi-LLM, Usage-Based
|
||
5. **Internationalisierung** — neue Sprache in 5 Min, AI-übersetzt, kein Redeploy
|
||
|
||
**Treuhänder wollen sehen:**
|
||
1. **Zeitersparnis** — vorher 5–15 Min/Beleg → nachher Sekunden
|
||
2. **Datenschutz** — keine Kundendaten an OpenAI/Google
|
||
3. **Integration** — Abacus/Bexio/SharePoint ohne Systemwechsel
|
||
4. **Kontrolle** — Audit-Trail, Nachvollziehbarkeit
|
||
|
||
### Drei Live Use Cases (aus Keynote-Deck)
|
||
|
||
| # | Use Case | Dauer | Wow-Effekt | Technische Basis |
|
||
|---|----------|-------|------------|------------------|
|
||
| UC1 | **Treuhand: Automatisierte Spesenverarbeitung** | 6 Min | Beleg → OCR → Kontierung → Export in Sekunden | Trustee-Feature, Graph-Editor Workflow, SharePoint-Nodes |
|
||
| UC2 | **Immobilien: Automatisierte Machbarkeitsstudie** | 4 Min | Grundstück eingeben → 6 Min statt 4 Std. Recherche | RealEstate-Feature, Agent + webSearch + readUrl |
|
||
| UC3 | **Enterprise: AI Knowledge Chatbot** | 4 Min | Frage stellen → sofortige Antwort mit Quellenangabe | Chatbot-Feature, RAG, Neutralisierung |
|
||
| UC4 | **Sprach-Deployment: Neue Sprache in 5 Minuten** | 3 Min | Sprache anlegen → AI übersetzt → UI sofort mehrsprachig | i18n-System, AI-Batch-Translation, Admin-UI |
|
||
| UC5 | **Integrationen: Architektur-Visualisierung** | 1 Min | Komplette Integrationslandschaft auf einen Blick | Neue Systemseite, Custom React-Komponente |
|
||
| — | **Neutralisierung (Querschnitt)** | 3 Min | PII live entfernen + Re-Personalisierung | Neutralisierung-Feature, Private LLM |
|
||
|
||
### Kritische Stellen
|
||
|
||
- **Graph-Editor Performance:** Workflow muss flüssig laufen (keine 15s-Wartezeiten)
|
||
- **Neutralisierung live zeigen:** Muss am AI-Gate greifen, nicht nur im Playground
|
||
- **Stabile Testdaten:** Jeder Demo-Lauf muss identische Ergebnisse liefern
|
||
- **Internet-Abhängigkeit:** UC2 (webSearch) braucht stabiles Internet — Fallback vorbereiten
|
||
- **LLM-Latenz:** Multi-LLM-Routing muss schnell sein — bevorzugt Azure OpenAI (geringste Latenz)
|
||
|
||
---
|
||
|
||
## Ziel und Nicht-Ziele
|
||
|
||
**Ziel:**
|
||
- Drei Use Cases end-to-end live lauffähig auf einer Demo-Instanz
|
||
- Bootstrap-Modul `demo` das den kompletten Demo-Zustand idempotent aufbaut
|
||
- Detailliertes Drehbuch mit Timing, Talking Points und Fallbacks
|
||
- Automatisiertes Testdrehbuch (pytest) das die Demo-Schritte verifiziert
|
||
- Alles auf INT-Umgebung deployt und getestet bis Montag Abend
|
||
|
||
**Explizit NICHT:**
|
||
- Keine neuen Features bauen (nutzen was da ist)
|
||
- Kein neues Frontend (UI-Enhancements separat)
|
||
- Keine neuen Connector-Implementierungen
|
||
- Keine Änderung am Billing für die Demo
|
||
|
||
---
|
||
|
||
## Betroffene Module
|
||
|
||
- **Gateway:** `modules/bootstrap/bootstrapDemo.py` (neu), `modules/system/mainSystem.py` (Nav-Eintrag), `features/trustee/`, `features/realestate/`, `features/chatbot/`, `features/neutralization/`, `features/workspace/`, `features/graphicalEditor/`
|
||
- **Frontend:** `pages/system/IntegrationsOverviewPage.tsx` (neu), `config/pageRegistry.tsx` (Eintrag)
|
||
- **DB-Migration:** nein (nur Daten-Seeding)
|
||
- **Andere Komponenten:** Testdaten (PDF, Excel, CSV), Demo-Skript (Markdown), Test-Suite (pytest)
|
||
|
||
---
|
||
|
||
## Entscheidungen
|
||
|
||
| Datum | Entscheidung | Begründung |
|
||
|-------|-------------|------------|
|
||
| 2026-04-12 | Bootstrap-Modul statt manuellem Setup | Idempotent, reproduzierbar, jeder kann die Demo aufsetzen |
|
||
| 2026-04-12 | UC2 (Immobilien) als Agent-Demo statt RealEstate-Feature voll nutzen | RealEstate-Feature ist noch Shell; Agent + webSearch zeigt dieselbe Story |
|
||
| 2026-04-12 | Neutralisierung als Querschnitt in UC1 + UC3 einbauen, nicht als eigenen Block | Natürlicher Flow, keine "Feature-Parade" |
|
||
| 2026-04-12 | Testdrehbuch als pytest-Suite unter `gateway/tests/demo/` | Automatisch prüfbar, CI-fähig, reproduzierbar |
|
||
| 2026-04-12 | Fallback-Screenshots für UC2 (Internet-abhängig) | Demo darf nicht an WLAN scheitern |
|
||
|
||
---
|
||
|
||
## Umsetzungs-Checkliste
|
||
|
||
### Phase 0: Klärung — Was zeigen wir? (So Abend / Mo Morgen)
|
||
|
||
- [ ] **Use-Case-Auswahl bestätigen** mit Kollegen (Keynote-Alignment)
|
||
- UC1: Treuhand Spesenverarbeitung → zeigt Plug&Play + Workflow
|
||
- UC2: Immobilien Machbarkeitsstudie → zeigt AI-Agent-Power + Zeitersparnis
|
||
- UC3: Knowledge Chatbot → zeigt RAG + Enterprise-Readiness
|
||
- UC4: Sprach-Deployment → zeigt Skalierbarkeit + Enterprise-Readiness (neue Sprache in 5 Min)
|
||
- UC5: Integrationen → zeigt Plug&Play-Architektur visuell (Datenquellen → PORTA → Services)
|
||
- Querschnitt: Neutralisierung → zeigt Privacy-First
|
||
- [ ] **Demo-Storyline abstimmen:** Reihenfolge, Übergänge, wer was sagt
|
||
- [ ] **Fallback-Strategie:** Was wenn ein UC live hängt? (→ vorbereitete Screenshots/Video)
|
||
|
||
### Phase 1: Bootstrap-Modul `demo` (Mo Vormittag)
|
||
|
||
- [ ] **`gateway/modules/bootstrap/bootstrapDemo.py`** erstellen
|
||
- Funktion `bootstrapDemoEnvironment(db)` — idempotent, aufgerufen via CLI-Flag oder API
|
||
- Erstellt Demo-Mandant "PowerON Demo" mit allen nötigen Feature-Instanzen
|
||
- Seeded Demo-User: `demo@poweron.ch` (Admin), `treuhänder@demo.ch` (Rolle: Mandant)
|
||
- Aktiviert Features: workspace, trustee, realestate, chatbot, neutralization, graphicalEditor
|
||
- Lädt Demo-Testdaten (PDFs, Excel) in den Workspace
|
||
- Konfiguriert Neutralisierung (enabled=true, Demo-Mappings)
|
||
- Erstellt Graph-Editor Demo-Workflows aus System-Templates
|
||
- Setzt Demo-Billing (Trial-Modus mit genügend Credits)
|
||
|
||
- [ ] **CLI-Einstiegspunkt** in `app.py` oder separates Script `scripts/bootstrapDemo.py`
|
||
```
|
||
python -m scripts.bootstrapDemo --env int --reset
|
||
```
|
||
- `--reset` löscht bestehenden Demo-Mandant und baut neu auf
|
||
- `--env` wählt Zielumgebung (local, int)
|
||
|
||
- [ ] **Demo-Testdaten vorbereiten** (Ordner `gateway/demoData/`)
|
||
- `invoices/` — 3 Muster-Rechnungen (PDF): Handwerker, Büromaterial, Versicherung
|
||
- `expenses/` — 2 Spesenbelege (PDF): Reisekosten, Bewirtung
|
||
- `tenant-dossier.pdf` — Fiktives Mieterdossier (Name, Adresse, Mietzins) für Neutralisierung
|
||
- `knowledge-base/` — 3-4 Firmen-Dokumente (Handbuch, FAQ, Prozessbeschreibung) für RAG
|
||
- `budget-2026.xlsx` — Budget-Soll-Werte für Trustee-Vergleich
|
||
|
||
### Phase 2: Demo-Konfiguration pro Use Case (Mo Nachmittag)
|
||
|
||
#### UC1: Treuhand — Spesenverarbeitung
|
||
|
||
- [ ] **Trustee-Instanz konfigurieren** (Connector: Bexio-Sandbox oder Mock)
|
||
- [ ] **Graph-Editor Workflow erstellen/aktivieren:**
|
||
Trigger (manual) → SharePoint listFiles → Loop → downloadFile → extractFromFiles → processDocuments → syncToAccounting
|
||
(System-Template "Treuhand: PDF-Klassifizierung & Trustee-Import" als Basis nutzen)
|
||
- [ ] **SharePoint-Demo-Ordner** mit 3 Musterbelegen befüllen (oder lokaler Upload-Pfad)
|
||
- [ ] **Demo-Prompt** vorbereiten: "Verarbeite die Belege im Eingangsordner und erstelle die Buchungen"
|
||
- [ ] **Erwartetes Ergebnis dokumentieren:** Beleg → extrahierte Positionen → MWST-Code → Kontierung
|
||
|
||
#### UC2: Immobilien — Machbarkeitsstudie
|
||
|
||
- [ ] **Workspace-Instanz** mit RealEstate-Kontext konfigurieren
|
||
- [ ] **Demo-Prompt** vorbereiten: "Erstelle eine Machbarkeitsstudie für das Grundstück an der Musterstrasse 42, 8001 Zürich. Analysiere Zonierung, Baurecht und Nutzungspotential."
|
||
- [ ] **Agent-Tools sicherstellen:** `webSearch`, `readUrl`, `createChart` verfügbar
|
||
- [ ] **Fallback:** Vorbereitete Ergebnis-Screenshots falls Internet ausfällt
|
||
- [ ] **Erwartetes Ergebnis dokumentieren:** Automatische Datensammlung → BZO-Analyse → Zusammenfassung
|
||
|
||
#### UC3: Enterprise — Knowledge Chatbot
|
||
|
||
- [ ] **Chatbot-Instanz konfigurieren** mit Demo-Datenbank (oder Workspace-RAG)
|
||
- [ ] **Knowledge-Base befüllen:** 3-4 Dokumente hochladen + RAG-Index aufbauen
|
||
- [ ] **Demo-Fragen vorbereiten:**
|
||
- "Wie ist unser Reklamationsprozess?" (→ Antwort mit Quellenangabe)
|
||
- "Welche Fristen gelten für Nebenkostenabrechnungen?" (→ zeigt domänenspezifisches Wissen)
|
||
- "Erstelle eine Zusammenfassung der Q1-Ergebnisse" (→ zeigt Analyse-Fähigkeit)
|
||
- [ ] **Neutralisierung aktivieren** und in einer Frage live demonstrieren
|
||
- [ ] **Erwartetes Ergebnis dokumentieren:** Frage → Antwort mit Quellenangabe + Audit-Trail
|
||
|
||
#### UC5: Integrationen — Architektur-Visualisierung (neue Seite)
|
||
|
||
- [ ] **Neue Systemseite `page.system.integrations`** erstellen
|
||
- Route: `/integrations` (unter "Meine Sicht" / System-Block)
|
||
- Navigation-Eintrag in `mainSystem.py` → `NAVIGATION_SECTIONS`
|
||
- Page-Registry-Eintrag in `pageRegistry.tsx` → Icon: `FaProjectDiagram` oder `FaCubes`
|
||
|
||
- [ ] **React-Komponente `IntegrationsOverviewPage.tsx`** bauen
|
||
- **3-Schichten-Layout (vertikal, von unten nach oben):**
|
||
- **Schicht 1 (unten): Datenquellen**
|
||
- Box pro OAuth-Connection (Microsoft-Icon, Google-Icon) → persönliche Daten
|
||
- Box pro System-Connector (Abacus-Instanz, Bexio-Instanz, RMA, SharePoint, etc.)
|
||
- Daten kommen von `GET /api/connections` + Feature-Instanz-Configs
|
||
- **Schicht 2 (Mitte): PORTA (PowerON)**
|
||
- Zentrale Box mit PowerON-Logo
|
||
- Darin: Sub-Boxes für jeden aktiven Workflow (System-Templates + Custom-Workflows)
|
||
- Daten kommen von `GET /api/workflows` (Graph-Editor Workflows)
|
||
- **Schicht 3 (oben): Services / Mandanten**
|
||
- Box pro Mandant mit den aktivierten Features/Services darin
|
||
- Daten kommen von Navigation-API (`GET /api/navigation` → dynamic block)
|
||
- **Verbindungslinien** zwischen den Schichten (CSS/SVG, kein Canvas)
|
||
- **Rendering-Technologie:** Custom React mit CSS Grid + `framer-motion` Animationen
|
||
- Kein Mermaid (zu statisch, schwer zu stylen)
|
||
- Kein xyflow (Overkill, neue Dependency)
|
||
- Bestehende Libs nutzen: `react-icons` (Connector-Icons), `framer-motion` (Hover/Enter-Animationen)
|
||
|
||
- [ ] **API-Endpoint `GET /api/system/integrations-overview`** (optional)
|
||
- Aggregiert: Connections, Feature-Instanzen, Workflows, Mandanten
|
||
- Oder: Frontend aggregiert aus bestehenden APIs (einfacher, weniger Backend-Aufwand)
|
||
|
||
- [ ] **Demo-Daten sicherstellen:** Mindestens 2 Connections (Microsoft, Google), 2 System-Connectors (Abacus, Bexio), 3 Workflows, 2 Mandanten mit Features
|
||
|
||
#### UC4: Sprach-Deployment — Neue Sprache in 5 Minuten
|
||
|
||
- [ ] **Sicherstellen:** i18n Admin-UI erreichbar unter `/admin/languages`
|
||
- [ ] **Bestehende Sprachen prüfen:** DE, EN, FR vorhanden und vollständig
|
||
- [ ] **Demo-Sprache vorbereiten:** Italienisch (it) NICHT vorinstalliert lassen — wird live angelegt
|
||
- [ ] **AI-Übersetzungs-Pipeline testen:** `POST /api/i18n/sets` mit `code: "it"` → async Translation → Ergebnis in <5 Min
|
||
- [ ] **Sprachwechsel im UI testen:** Nach Anlage → Sprachselektor zeigt "it" → UI komplett auf Italienisch
|
||
- [ ] **Fallback:** Falls AI-Translation zu lang dauert → Sprache vorher anlegen, live nur den Wechsel zeigen
|
||
- [ ] **Billing sicherstellen:** Demo-Mandant hat genügend Credits für AI-Batch-Translation
|
||
|
||
#### Querschnitt: Neutralisierung
|
||
|
||
- [ ] **Demo-Flow vorbereiten:**
|
||
1. Fiktives Mieterdossier (PDF) im Workspace öffnen
|
||
2. Neutralisierung aktivieren → PII wird zu Platzhaltern
|
||
3. AI-Analyse auf neutralisierten Daten ausführen
|
||
4. Re-Personalisierung zeigen (Platzhalter → Originaldaten)
|
||
- [ ] **NeutralizationPanel** im Frontend vorbereiten (Mappings sichtbar)
|
||
|
||
### Phase 3: Drehbuch der Demo (Mo Nachmittag)
|
||
|
||
- [ ] **Detailliertes Drehbuch erstellen** (siehe unten, Abschnitt "Demo-Drehbuch")
|
||
- [ ] **Talking Points** für jede Szene (was sagen, was zeigen, was klicken)
|
||
- [ ] **Timing-Markers** (Minute 0-20) mit Puffer
|
||
|
||
### Phase 4: Testdrehbuch — automatisiertes Testing (Mo Abend)
|
||
|
||
- [ ] **Test-Suite `gateway/tests/demo/`** erstellen
|
||
- [ ] **`conftest.py`** mit Demo-Fixtures (Mandant, User, Feature-Instanzen)
|
||
- [ ] **`test_demo_uc1_trustee.py`** — Trustee-Pipeline end-to-end
|
||
- [ ] **`test_demo_uc2_realestate.py`** — Agent-basierte Machbarkeitsstudie
|
||
- [ ] **`test_demo_uc3_chatbot.py`** — Knowledge-Chatbot mit RAG
|
||
- [ ] **`test_demo_uc4_i18n.py`** — Sprach-Deployment + AI-Translation + UI-Wechsel
|
||
- [ ] **`test_demo_neutralization.py`** — Neutralisierung roundtrip
|
||
- [ ] **`test_demo_bootstrap.py`** — Bootstrap idempotent + Demo-Zustand korrekt
|
||
- [ ] **Alle Tests grün** auf INT-Umgebung
|
||
|
||
### Phase 5: Generalprobe (Di Vormittag)
|
||
|
||
- [ ] **Komplette Demo 1x durchspielen** auf INT mit echtem Browser
|
||
- [ ] **Timing messen** — muss in 20 Min passen (Ziel: 18 Min mit Puffer)
|
||
- [ ] **Edge Cases testen:** Was wenn LLM langsam? Was wenn SharePoint-Timeout?
|
||
- [ ] **Backup-Plan:** Browser-Tab mit vorbereiteten Ergebnissen für jeden UC
|
||
|
||
---
|
||
|
||
## Demo-Drehbuch (20 Minuten)
|
||
|
||
### Szene 0: Setup (vor der Demo, nicht sichtbar)
|
||
|
||
- Browser auf: PORTA Dashboard (Demo-Mandant eingeloggt als `demo@poweron.ch`)
|
||
- Tabs vorbereitet: Dashboard, Workspace, Graph-Editor, Trustee, Chatbot
|
||
- SharePoint-Demo-Ordner mit Belegen befüllt
|
||
- Neutralisierung aktiviert
|
||
- Knowledge-Base indexiert
|
||
|
||
### Szene 1: Intro & Integrationslandschaft (0:00 – 3:00)
|
||
|
||
**Was zeigen:** PORTA Dashboard → Integrationsseite — die Architektur auf einen Blick
|
||
**Talking Points:**
|
||
- "Das ist PORTA — unsere AI Execution Layer. Ein Login, alle AI-Workflows."
|
||
- "Jeder Mandant hat seine eigenen Features, Daten, Berechtigungen — komplett getrennt."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Dashboard → Mandanten-Übersicht
|
||
2. Feature-Store → aktivierte Features zeigen (Treuhand, Chatbot, Neutralisierung)
|
||
3. **Integrationen öffnen** → "Hier sehen Sie die komplette Architektur auf einen Blick."
|
||
4. **Schicht für Schicht erklären:**
|
||
- Unten: "Das sind die Datenquellen — Microsoft, Google, Abacus, Bexio. Die stecken wir an wie Stecker."
|
||
- Mitte: "Hier laufen die Workflows — visuell gebaut, AI-gesteuert. System-Templates und individuelle."
|
||
- Oben: "Die Services pro Mandant — jeder bekommt nur, was er braucht."
|
||
5. "50+ Konnektoren, keine Seat-Lizenzen, Bezahlung pro Workflow-Ausführung."
|
||
6. → Überleitung: "Schauen wir uns an, wie das konkret funktioniert."
|
||
|
||
### Szene 2: UC1 — Treuhand Spesenverarbeitung (3:00 – 9:00)
|
||
|
||
**Was zeigen:** Beleg → OCR → KI-Kontierung → Export — in Sekunden statt Minuten
|
||
**Talking Points:**
|
||
- "Treuhänder verbringen 5-15 Min pro Beleg mit manueller Erfassung."
|
||
- "PowerON automatisiert das: Beleg hochladen oder aus SharePoint holen, KI extrahiert und kontiert."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Graph-Editor öffnen → Demo-Workflow "Treuhand: Belegverarbeitung" zeigen
|
||
2. "Das ist ein visueller Workflow — kein Code nötig. SharePoint → Loop → Extraktion → Kontierung."
|
||
3. Workflow manuell starten → Live-Ausführung zeigen
|
||
4. Trustee-Bereich öffnen → extrahierte Positionen zeigen (Beleg, MWST, Konto)
|
||
5. "Das lief gerade in Sekunden. Vorher: 15 Minuten pro Beleg. Das ist 98% Zeiteinsparung."
|
||
6. Audit-Trail zeigen: "Jeder Schritt ist nachvollziehbar — für Revision und Compliance."
|
||
|
||
**Transition:** "Und das Beste: Die Kundendaten verlassen nie die Schweiz. Schauen wir uns das an."
|
||
|
||
### Szene 3: Neutralisierung live (9:00 – 12:00)
|
||
|
||
**Was zeigen:** PII-Schutz in Echtzeit — Daten werden vor dem LLM-Call anonymisiert
|
||
**Talking Points:**
|
||
- "Treuhänder, Anwälte, Gesundheitssektor — die können keine Kundendaten an OpenAI senden."
|
||
- "PowerON löst das architektonisch: PII wird entfernt, BEVOR Daten zum Modell gehen."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Workspace öffnen → Mieterdossier (PDF) hochladen
|
||
2. Neutralisierungs-Panel zeigen: "Hier sehen Sie die Mappings — jeder Name, jede Adresse wird durch Platzhalter ersetzt."
|
||
3. AI-Analyse starten: "Analysiere das Mieterdossier und erstelle eine Risikobewertung"
|
||
4. Ergebnis zeigen: Analyse ist inhaltlich korrekt, aber keine echten Namen im LLM-Call
|
||
5. Re-Personalisierung: "Im Ergebnis stehen wieder die echten Namen — der Platzhalter-Roundtrip ist transparent."
|
||
6. "Das ist keine opt-in Checkbox. Das ist Architektur. PII kann physisch nicht zum Modell-Anbieter gelangen."
|
||
|
||
**Transition:** "Jetzt zeigen wir, wie die KI auch ausserhalb der Treuhand arbeitet."
|
||
|
||
### Szene 4: UC2 — Immobilien Machbarkeitsstudie (12:00 – 15:00)
|
||
|
||
**Was zeigen:** Grundstück → automatische Recherche → Analyse in Minuten statt Stunden
|
||
**Talking Points:**
|
||
- "Immobilienfirmen recherchieren 2-4 Stunden pro Grundstück. Manuell, über verschiedene Quellen."
|
||
- "PowerON automatisiert die Recherche und erstellt eine Machbarkeitsstudie."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Workspace öffnen → Prompt eingeben: "Erstelle eine Machbarkeitsstudie für Musterstrasse 42, 8001 Zürich"
|
||
2. Agent arbeitet live: "Der Agent sucht jetzt automatisch in öffentlichen Quellen — swisstopo, Zonenpläne, ÖREB."
|
||
3. Ergebnis zeigen: Zusammenfassung mit Zonierung, Baurecht, Nutzungspotential
|
||
4. Chart zeigen (falls generiert): Flächenaufteilung, Nutzungsmix
|
||
5. "6 Minuten statt 4 Stunden. 92% Zeiteinsparung. Und das funktioniert für jedes Grundstück in der Schweiz."
|
||
|
||
**Transition:** "Letztes Beispiel — wie die KI als Firmen-Wissensbasis funktioniert."
|
||
|
||
### Szene 5: UC3 — Knowledge Chatbot (15:00 – 17:00)
|
||
|
||
**Was zeigen:** Firmenwissen sofort abrufbar — mit Quellenangabe
|
||
**Talking Points:**
|
||
- "Informationssilos sind der Produktivitätskiller Nr. 1. ERP, CRM, SharePoint — Daten überall."
|
||
- "PowerON gibt ein einheitliches Interface auf alle Datenquellen."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Chatbot öffnen → "Wie ist unser Reklamationsprozess?"
|
||
2. Antwort zeigen: Strukturiert, mit Quellenangabe (Dokument + Seite)
|
||
3. Follow-up: "Welche Fristen gelten für Nebenkostenabrechnungen?"
|
||
4. Antwort mit Rechtsgrundlage zeigen
|
||
5. "Sofortige Antworten statt 10 Minuten Suche. Rollenbasierter Zugriff — jeder sieht nur, was er sehen darf."
|
||
|
||
### Szene 6: UC4 — Sprach-Deployment live (17:00 – 20:00)
|
||
|
||
**Was zeigen:** Neue Sprache in Minuten — AI übersetzt das komplette UI automatisch
|
||
**Talking Points:**
|
||
- "Europäische Kunden brauchen Mehrsprachigkeit. Deutsch, Französisch, Englisch — und morgen vielleicht Italienisch oder Portugiesisch."
|
||
- "Bei PowerON legen Sie eine neue Sprache an, die AI übersetzt alle UI-Texte, und in 5 Minuten ist das System komplett in der neuen Sprache verfügbar. Ohne Code-Änderung, ohne Redeploy."
|
||
- "Das ist kein Google Translate. Die AI versteht den Kontext — 'Offen' als Status vs. 'Offen' als Zustand wird korrekt übersetzt."
|
||
|
||
**Klick-Sequenz:**
|
||
1. Administration → System → UI-Sprachen öffnen → bestehende Sprachen zeigen (DE, EN, FR)
|
||
2. "Neue Sprache anlegen" klicken → z.B. **Italienisch** (it) wählen
|
||
3. AI-Übersetzung startet → Fortschritt zeigen (Batch-Pipeline)
|
||
4. Sprache wechseln → komplettes UI ist sofort auf Italienisch
|
||
5. "Das hat gerade 5 Minuten gedauert. Für eine komplette Enterprise-Plattform. Kein Entwickler nötig."
|
||
6. Optional: "Update All" zeigen — scannt die Codebase, synchronisiert neue Keys, übersetzt automatisch
|
||
|
||
**Transition:** "Das war PowerON PORTA — zurück zu den Zahlen."
|
||
|
||
### Szene 7: Closing (im Keynote-Deck, nicht in PORTA)
|
||
|
||
- Zurück zu den Keynote-Slides: Pricing, Roadmap, Next Steps
|
||
- CTA für Investoren / Treuhänder
|
||
|
||
---
|
||
|
||
## Testdrehbuch (automatisiert)
|
||
|
||
### Architektur
|
||
|
||
```
|
||
gateway/tests/demo/
|
||
├── conftest.py # Demo-Fixtures, DB-Setup
|
||
├── test_demo_bootstrap.py # Bootstrap idempotent, Demo-Zustand korrekt
|
||
├── test_demo_uc1_trustee.py # UC1: Beleg → Extraktion → Kontierung
|
||
├── test_demo_uc2_realestate.py # UC2: Agent → Web-Recherche → Analyse
|
||
├── test_demo_uc3_chatbot.py # UC3: Frage → RAG → Antwort + Quelle
|
||
├── test_demo_uc4_i18n.py # UC4: Sprache anlegen → AI-Translation → UI-Wechsel
|
||
├── test_demo_neutralization.py # Neutralisierung: PII → Platzhalter → Roundtrip
|
||
└── README.md # Ausführungshinweise
|
||
```
|
||
|
||
### Test-Szenarien (Given-When-Then)
|
||
|
||
#### T-BOOT: Bootstrap
|
||
|
||
```
|
||
Given keine Demo-Daten in der DB
|
||
When bootstrapDemoEnvironment(db) ausgeführt wird
|
||
Then Demo-Mandant existiert mit allen Feature-Instanzen
|
||
AND Demo-User existiert mit korrekten Rollen
|
||
AND Demo-Testdaten sind im Workspace geladen
|
||
AND Neutralisierung ist aktiviert
|
||
AND Graph-Editor hat Demo-Workflows
|
||
|
||
Given Demo-Daten bereits vorhanden
|
||
When bootstrapDemoEnvironment(db) erneut ausgeführt wird
|
||
Then kein Fehler (idempotent)
|
||
AND Zustand ist identisch
|
||
```
|
||
|
||
#### T-UC1: Treuhand Spesenverarbeitung
|
||
|
||
```
|
||
Given Demo-Mandant mit Trustee-Instanz und 3 Musterbelegen im Workspace
|
||
When Graph-Editor Workflow "Treuhand: Belegverarbeitung" gestartet wird
|
||
Then alle 3 Belege werden extrahiert
|
||
AND jeder Beleg hat mindestens 1 extrahierte Position
|
||
AND jede Position hat: Betrag, MWST-Satz, Konto-Vorschlag
|
||
AND Workflow-Status = completed
|
||
AND Audit-Trail enthält alle Schritte
|
||
|
||
Given extrahierte Positionen vorhanden
|
||
When syncToAccounting aufgerufen wird
|
||
Then Positionen werden an Connector übergeben (Mock: Bexio-Sandbox)
|
||
AND Sync-Status = "synced" für alle Positionen
|
||
```
|
||
|
||
#### T-UC2: Immobilien Machbarkeitsstudie
|
||
|
||
```
|
||
Given Demo-Mandant mit Workspace-Instanz
|
||
When Agent-Prompt "Erstelle Machbarkeitsstudie für Musterstrasse 42, 8001 Zürich" ausgeführt wird
|
||
Then Agent nutzt webSearch und/oder readUrl Tools
|
||
AND Ergebnis enthält: Zonierung, Baurecht-Infos, Flächenanalyse
|
||
AND Ergebnis ist strukturiert (Abschnitte, ggf. Chart)
|
||
AND Antwortzeit < 120 Sekunden
|
||
```
|
||
|
||
#### T-UC3: Knowledge Chatbot
|
||
|
||
```
|
||
Given Demo-Mandant mit Chatbot-Instanz und indexierter Knowledge-Base (3+ Dokumente)
|
||
When Frage "Wie ist unser Reklamationsprozess?" gestellt wird
|
||
Then Antwort referenziert mindestens 1 Quell-Dokument
|
||
AND Antwort ist inhaltlich korrekt (enthält Prozessschritte)
|
||
AND Antwortzeit < 15 Sekunden
|
||
|
||
Given Chatbot mit RAG-Index
|
||
When Frage zu Thema ausserhalb der Knowledge-Base gestellt wird
|
||
Then Antwort zeigt an, dass keine relevante Quelle gefunden wurde (kein Halluzinieren)
|
||
```
|
||
|
||
#### T-UC4: Sprach-Deployment
|
||
|
||
```
|
||
Given Demo-Mandant mit i18n Admin-Zugriff und bestehenden Sprachen DE, EN, FR
|
||
AND Sprache "it" (Italienisch) existiert NICHT
|
||
When POST /api/i18n/sets mit code "it" ausgeführt wird
|
||
Then AI-Batch-Translation startet
|
||
AND nach Abschluss enthält das it-Set alle Keys aus dem de-Master-Set
|
||
AND Übersetzungen sind kontextuell korrekt (Stichprobe: "Speichern" → "Salva", "Abbrechen" → "Annulla")
|
||
AND Gesamtdauer < 5 Minuten
|
||
|
||
Given Sprache "it" vollständig übersetzt
|
||
When User die Sprache im UI auf "it" wechselt
|
||
Then alle UI-Elemente zeigen italienische Texte
|
||
AND kein Fallback auf deutsche Keys sichtbar (ausser bei fehlenden Übersetzungen)
|
||
```
|
||
|
||
#### T-NEU: Neutralisierung
|
||
|
||
```
|
||
Given Demo-Mandant mit aktivierter Neutralisierung
|
||
AND Mieterdossier-PDF mit PII (Name: "Hans Muster", Adresse: "Bahnhofstrasse 1")
|
||
When PDF hochgeladen und Neutralisierung ausgeführt wird
|
||
Then neutralisierter Text enthält Platzhalter statt "Hans Muster"
|
||
AND Mapping-Tabelle enthält Zuordnung Platzhalter → Original
|
||
AND resolveText() stellt Originaldaten korrekt wieder her
|
||
|
||
Given neutralisierter Text
|
||
When AI-Analyse "Erstelle Risikobewertung" ausgeführt wird
|
||
Then LLM erhält nur neutralisierten Text (kein PII im Request)
|
||
AND Ergebnis nach Re-Personalisierung enthält "Hans Muster"
|
||
```
|
||
|
||
### Ausführung
|
||
|
||
```bash
|
||
cd gateway/
|
||
|
||
# Alle Demo-Tests:
|
||
pytest tests/demo/ -v -m "not expensive"
|
||
|
||
# Nur Bootstrap:
|
||
pytest tests/demo/test_demo_bootstrap.py -v
|
||
|
||
# Nur UC1:
|
||
pytest tests/demo/test_demo_uc1_trustee.py -v
|
||
|
||
# Mit Live-AI-Calls (expensive, für Generalprobe):
|
||
pytest tests/demo/ -v -m ""
|
||
```
|
||
|
||
---
|
||
|
||
## Akzeptanzkriterien
|
||
|
||
| # | Kriterium (Given-When-Then) | Prio |
|
||
|---|---------------------------|------|
|
||
| 1 | Given Demo-Mandant, When Bootstrap ausgeführt wird, Then alle Features aktiv + Testdaten geladen + Neutralisierung an | must |
|
||
| 2 | Given 3 Musterbelege, When Trustee-Workflow läuft, Then Belege extrahiert + kontiert + Audit-Trail vorhanden | must |
|
||
| 3 | Given Workspace mit Agent, When Machbarkeitsstudie-Prompt, Then strukturierte Analyse mit Quellen in <2 Min | must |
|
||
| 4 | Given Chatbot mit Knowledge-Base, When Frage gestellt, Then Antwort mit Quellenangabe in <15s | must |
|
||
| 5 | Given Mieterdossier-PDF, When Neutralisierung aktiv + AI-Analyse, Then PII nie an LLM gesendet + Re-Personalisierung korrekt | must |
|
||
| 6 | Given i18n Admin-UI, When neue Sprache "it" angelegt wird, Then AI übersetzt alle Keys in <5 Min und UI zeigt Italienisch nach Sprachwechsel | must |
|
||
| 7 | Given komplettes Drehbuch, When Demo komplett durchgespielt, Then Timing ≤ 20 Min mit Puffer | must |
|
||
| 8 | Given pytest-Suite, When `pytest tests/demo/` ausgeführt, Then alle Tests grün (ohne expensive: Bootstrap + Struktur; mit expensive: Live AI) | should |
|
||
|
||
## Testplan
|
||
|
||
| ID | AC | Art | Automatisiert | Repo-Pfad | Status |
|
||
|----|----|-----|--------------|-----------|--------|
|
||
| T1 | 1 | integration | ja | gateway/tests/demo/test_demo_bootstrap.py | pending |
|
||
| T2 | 2 | e2e | ja (teilweise, AI=expensive) | gateway/tests/demo/test_demo_uc1_trustee.py | pending |
|
||
| T3 | 3 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc2_realestate.py | pending |
|
||
| T4 | 4 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc3_chatbot.py | pending |
|
||
| T5 | 5 | e2e | ja (expensive) | gateway/tests/demo/test_demo_neutralization.py | pending |
|
||
| T6 | 6 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc4_i18n.py | pending |
|
||
| T7 | 7 | manual | nein | — (Generalprobe Di Morgen) | pending |
|
||
| T8 | 8 | ci | ja | `pytest tests/demo/ -v` | pending |
|
||
|
||
## Links
|
||
|
||
- Keynote Use Cases: `local/notes/use-cases-DEMO-TUE.md`
|
||
- Customer Demo Enablement: `c-work/1-plan/2026-04-customer-demo-enablement.md`
|
||
- Trustee Tooling Plan: `c-work/1-plan/2026-04-customer-trustee-tooling-and-demo-prep.md`
|
||
- Bootstrap (bestehend): `gateway/modules/interfaces/interfaceBootstrap.py`
|
||
- System-Templates (Treuhand): `interfaceBootstrap._buildSystemTemplates()`
|
||
- Workflow-Engine: `b-reference/gateway/workflow.md`
|
||
- Neutralisierung: `b-reference/platform/neutralization.md`
|
||
- Testing-Strategie: `d-guides/testing-strategy.md`
|
||
- Trustee-Feature: `gateway/modules/features/trustee/`
|
||
- RealEstate-Feature: `gateway/modules/features/realEstate/`
|
||
- Chatbot-Feature: `gateway/modules/features/chatbot/`
|
||
- Neutralisierung-Feature: `gateway/modules/features/neutralization/`
|
||
- Graph-Editor: `gateway/modules/features/graphicalEditor/`
|
||
|
||
## Abschluss
|
||
|
||
- [ ] b-reference/ aktualisiert (keine neuen Features, nur Demo-Config)
|
||
- [ ] TOPICS.md aktualisiert (falls neues Thema)
|
||
- [ ] Dieses Dokument → z-archive/ verschoben
|