Darstellung
12 – AI, Speech & Realtime
Reifegrad: 🟡 teils produktiv, teils deaktiviert · Schicht: src/lib/ai/*, src/lib/speech/*, src/app/api/ai/*, src/app/api/speech/*, src/app/api/realtime/*, Tabelle ai_audit
Überblick
AI in Work7 hat heute drei aktive Standbeine – plus einen deaktivierten Web-Chat:
| Funktion | Status | Endpoint |
|---|---|---|
| WhatsApp-Agent (Tool-Calling) | 🟡 Rebuild | siehe 11-whatsapp-agent |
| Text-Zusammenfassung | 🟢 aktiv | POST /api/ai/summarize |
| Spracherkennung (Audio → Text) | 🟢 aktiv | POST /api/speech/transcribe |
| Web-Chat-Assistent | 🔴 deaktiviert | POST /api/ai/chat → 503 |
⚠️ Wichtiger Ist-Stand: AI-Web-Chat ist abgeschaltet
/api/ai/chat gibt bewusst 503 agent_service_removed zurück:
„NOTE: The agent-service that powered AI chat has been removed. This endpoint is disabled and returns 503." (
src/app/api/ai/chat/route.ts)
Der frühere in-App-Chat lief gegen den alten Agent-Service. AI-Konversation findet jetzt ausschließlich über den WhatsApp-Agent statt. UI-Reste in src/components/ai/* sind ohne Backend.
Text-Zusammenfassung (/api/ai/summarize)
- Aktiv, sessionpflichtig + rate-limited (
getAiSummarizeRateLimitConfig). - Tasks:
project_description,generic(src/lib/ai/summarize.ts). - Backend: Azure OpenAI über
src/lib/ai/azure-openai.ts(OpenAI-SDK gegen Azure-Endpoint). - Nutzung u. a. in der Projektanlage (Beschreibung generieren, siehe 04-projekte).
Spracherkennung / Speech
POST /api/speech/transcribe– Audio-Upload (multipart, max. 10 MB), sessionpflichtig + rate-limited. Transkription LLM-basiert (src/lib/speech/transcribe-llm.ts) mit Transkript-Bereinigung (sanitize-transcript.ts).- Agent-Seite: WhatsApp-Sprachnachrichten werden separat über Azure Whisper transkribiert (
packages/agent/src/media/transcribe.ts, siehe 11-whatsapp-agent). - Nutzerpräferenz
users.preferred_language(NULL = Auto-Detect) steuert die Transkriptionssprache.
AI-Audit & Memory
ai_audit(Migration 001): maskiertes Audit jeder AI-Interaktion (trace_id,model,action,request_masked/result_masked,status,latency_ms,source_ip).ai_agent_memory: persistenter Default-Scope je User (Legacy aus dem alten Agent; bleibt für Kontextspeicherung).- Hilfslogik:
src/lib/ai/audit.ts.
Realtime (Kurz – Details in 15-notifications-realtime)
- Server-Sent-Events-Bridge über Redis Pub/Sub (
src/lib/realtime-events.ts,src/lib/events.ts). - Event-Typen:
notification,leave:changed,domain:changed,calendar:google,calendar:microsoft. Streams:/api/realtime/*,/api/notifications/stream.
Konfiguration
AZURE_OPENAI_API_KEY/_ENDPOINT/_DEPLOYMENT_*, AZURE_OPENAI_TRANSCRIPTION_*. Rate-Limits in src/lib/rate-limit.ts.
Bekannte Befunde / offene Punkte
- Aufräumkandidat: UI-Komponenten/Anbindungen für den deaktivierten Web-Chat (
src/components/ai/*) entweder entfernen oder an den Agent/summarizeneu anbinden. - Zwei Transkriptionswege (LLM-basiert in der App vs. Whisper im Agent) – langfristig vereinheitlichen.