Skip to content

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:

FunktionStatusEndpoint
WhatsApp-Agent (Tool-Calling)🟡 Rebuildsiehe 11-whatsapp-agent
Text-Zusammenfassung🟢 aktivPOST /api/ai/summarize
Spracherkennung (Audio → Text)🟢 aktivPOST /api/speech/transcribe
Web-Chat-Assistent🔴 deaktiviertPOST /api/ai/chat503

⚠️ 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/summarize neu anbinden.
  • Zwei Transkriptionswege (LLM-basiert in der App vs. Whisper im Agent) – langfristig vereinheitlichen.

Verwandte Notes

Work7 · Software für Handwerksbetriebe