# Teams Meeting Bot -- Architektur ## Überblick AI-gesteuerter Meeting-Bot für Microsoft Teams. Tritt Meetings als regulärer Teilnehmer bei (Browser-Automation via Playwright/Chromium), erfasst Live-Transkripte, reagiert per Sprache (TTS) und/oder Chat. Kein Teams-Graph-SDK nötig -- funktioniert mandantenübergreifend ohne Admin-Approval. ## System-Architektur ``` ┌────────────┐ SSE ┌──────────────┐ WebSocket ┌─────────────┐ │ Frontend │◄──────────────│ Gateway │◄───────────────│ Bot Service │ │ (Nyla UI) │ │ (AI, TTS, │ HTTP (join/ │ (Playwright │ │ │ │ Sessions) │ leave) │ Chromium) │ └────────────┘ └──────────────┘ └─────────────┘ ``` | Verbindung | Protokoll | Zweck | |------------|----------|-------| | Gateway ↔ Bot | WebSocket | Echtzeit: Transkripte, Chat, Audio, Status | | Gateway → Bot | HTTP | Session-Steuerung (join, leave, status) | | Frontend ← Gateway | SSE | Live-Transkript-Stream für UI | ## Kernfähigkeiten - **Live Transcription:** Erfasst Untertitel mit Sprecher-Zuordnung, streamt via SSE - **AI-Analyse:** Transkript-Segmente werden durch AI-Modell (GPT-4o-mini / Claude) analysiert - **Voice Response:** TTS-Audio wird über den Mikrofon-Kanal ins Meeting gespielt - **Chat Response:** Bot kann Chat-Nachrichten ins Meeting schreiben - **Multi-Session:** Mehrere Bot-Instanzen parallel in verschiedenen Meetings ## Use Cases | UC | Beschreibung | |----|-------------| | AI Meeting Assistant | Bot nimmt teil, hört zu, antwortet auf Ansprache ("Hey Nyla, ...") | | Live Transcription | Echtzeit-Transkript-Stream für Teilnehmer ausserhalb des Meetings | | Meeting Summary | AI-generierte Zusammenfassung nach Meeting-Ende | | Multi-Bot | Mehrere parallele Sessions in verschiedenen Meetings | ## Integration mit Gateway Der Gateway (Feature `teamsbot`) verwaltet Sessions und stellt die AI-Pipeline bereit: - Session-Lifecycle: erstellen, starten, stoppen - WebSocket-Verbindung pro Session - AI-Analyse der Transkript-Segmente via `serviceAi` - TTS-Generierung für Voice-Responses ## Schlüssel-Dateien | Datei / Bereich | Rolle | |-----------------|-------| | `gateway/modules/features/teamsbot/` | Gateway-seitiges Feature-Modul | | `service-teams-browser-bot/` | Eigenständiger Bot-Service (separates Repository) | ## Regeln / Invarianten - Bot tritt als **regulärer Web-Teilnehmer** bei (Browser-Automation), nicht via Graph Communications SDK - Jede Session läuft in einer **eigenen Browser-Instanz** (Isolation) - Authentifizierter Join (mit Microsoft-Account) oder Anonymous Guest -- je nach Konfiguration - Gateway ist die **einzige** Schnittstelle für AI-Aufrufe und TTS -- der Bot-Service selbst hat keine AI-Logik