Chat-Audit (ChatAudit)
Zweck
/chat-audit ist die Audit-Sicht über alle AI-Chats des Mandanten. Pro Chat werden aggregiert:
- Anzahl Nachrichten gesamt und nur AI-Antworten.
- Token-Verbrauch (Prompt + Completion + Cache).
- Geschaetzte Kosten in USD.
- Anzahl verdaechtiger Einträge (
suspiciousPendingCount). - Hoechster gemessener „Suspicious-Score" (0–100).
- Letzter Aktivitaets-Zeitstempel.
Verdaechtige Einträge werden farbig markiert (Tier green/yellow/red je nach Score). Das Detail /chat-audit/:chatId zeigt die einzelnen Nachrichten.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_ChatAudit, ChatAudit | Liste/Detail aufrufbar | — |
Schritt-für-Schritt-Anleitung
- Chat-Audit (
/chat-audit) — Summary-DataGrid mit allen AI-Chats. - Spalten sortierbar/filterbar — z. B. nach Kosten, Token-Anzahl, Suspicious-Score.
- Klick auf einen Chat →
/chat-audit/:chatIdzeigt einzelne Nachrichten.

Felder und Eingaben (lesend)
| Feldname | Datentyp | Bedeutung |
|---|---|---|
chatId | UUID | Verweis auf den Chat. |
chatName | String | Anzeigename (oder erste 8 Zeichen der ID). |
chatCreatedAt | DateTime | Anlage. |
manuallyRenamed | Boolean | Wurde der Chat manuell umbenannt. |
messageCount / aiMessageCount | Integer | Anzahl Nachrichten gesamt / nur AI. |
totalPromptTokens / totalCompletionTokens / totalCacheTokens / totalTokens | Integer | Token-Verbrauch. |
totalCostUsd | Decimal | Geschaetzte Kosten in USD. |
suspiciousPendingCount | Integer | Anzahl ungeklaerter verdaechtiger Einträge. |
maxSuspiciousScore | Integer | Hoechster Score (0–100). |
lastActivityAt | DateTime | Letzte Aktivität. |
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/chat-audit/summary | Aggregate pro Chat | view ChatAudit |
GET | /api/chat-audit/:chatId | Detail-Nachrichten | view ChatAudit |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.