Zum Inhalt

AI-Chat & Analyse

Vesana hat zwei AI-Features:

  1. AI-Chat — frei stellbare IT-Fragen, mit RAG aus dem Wiki und Web-Suche als Fallback
  2. AI-Service-Analyse — automatische Diagnose eines Check-Problems, mit reichhaltigem Kontext

Beides nutzt dieselbe Kontext-Pipeline und denselben konfigurierten Provider.

Provider

Drei Möglichkeiten, siehe AI-Provider einrichten:

Provider Privatsphäre Kosten
Ollama lokal Daten bleiben im Stack Hardware (mehrere GB RAM)
Anthropic (Cloud) Frage + Kontext gehen zur Anthropic-API API-Tokens
Extern (OpenAI-kompatibler Endpoint) je nach Anbieter je nach Anbieter

Embeddings brauchen ein separates Modell

Anthropic hat keine Embedding-API. Bei Provider Anthropic läuft das Embedding-Modell trotzdem über Ollama — beides ist im Provider-Setup getrennt konfigurierbar.

Such-Pipeline

Chat und Service-Analyse durchlaufen dieselben Quellen-Schritte:

flowchart LR
    Q[Anfrage] --> RAG[1. RAG: pgvector]
    RAG --> FTS[2. FTS Deutsch/Englisch]
    FTS --> ILIKE[3. ILIKE Fallback]
    ILIKE --> WEB[4. Web-Suche, nur bei wenig Wiki-Treffern]
    WEB --> CTX[Kontext für LLM]
    CTX --> LLM[Provider]
    LLM --> RESP[Antwort + Quellen]
Schritt Was er macht
RAG Vector-Cosine-Similarity gegen Wiki-Embeddings, Top-Artikel
FTS PostgreSQL-Volltext, zuerst Deutsch, bei zu wenig Treffern zusätzlich Englisch
ILIKE partielle Substring-Suche als letzter Wiki-Anker
Web DuckDuckGo HTML-Suche (kein API-Key nötig) — läuft nur, wenn das Wiki bis dahin weniger als zwei Treffer geliefert hat

AI-Chat

Chat-Widget, wahlweise als Bubble unten rechts oder als Seitenleiste (AiChatWidget) — per Button umschaltbar, die Wahl bleibt pro Browser gespeichert.

Bedienung

  • Frage tippen, Enter — die Antwort streamt herein.
  • Verlauf: Unterhaltungen werden gespeichert. Verlauf öffnen, ältere Unterhaltung anklicken, weiterfragen — die Wiki-/Web-Belege der Antworten bleiben erhalten. Suche auch im Text der Nachrichten; Gruppierung Heute / Gestern / Letzte 7 Tage; umbenennen, anheften, löschen.
  • Neuer Chat beginnt eine neue Unterhaltung.
  • Eine Unterhaltung gehört genau einer Person: fremde Verläufe sind für niemanden lesbar, auch nicht für Administratoren. Die Betreiber-Sicht zeigt nur Zahlen, nie Inhalte.
  • Admin → System → KI → Chat-Verlauf: mitschreiben an/aus und Aufbewahrungszeit (beliebige Tageszahl, Schnellwahl 7 Tage bis 1 Jahr oder unbegrenzt = 0). Angeheftete Unterhaltungen sind immer ausgenommen.

Wissensquellen-Toggles

Pro Chat-Session drei Schalter:

Toggle Bedeutung
📖 Wiki RAG + FTS aus dem eigenen Wiki
🌐 Internet Web-Suche als Fallback
🧠 Eigenes Wissen standardmäßig an — erlaubt dem Modell, sein Grundwissen zusätzlich zum gefundenen Wiki-/Web-Kontext einzubringen. Ausschalten zwingt strikte Quellentreue: das Modell antwortet nur noch aus den gefundenen Wiki-Artikeln und Web-Ergebnissen und sagt ehrlich, wenn es keine Quelle findet, statt zu raten

Für sensible Diskussionen ohne Web-Zugriff: nur Wiki an lassen, Internet aus.

Quellen-Badges

Die Antwort zeigt, welche Wiki-Artikel und Web-Ergebnisse als Kontext eingeflossen sind, mit Titel/Link — so ist nachvollziehbar, woher eine Aussage stammt.

Tenant-Scope

Die Suche respektiert den Tenant-Scope aus dem JWT: Super-Admin sieht tenantübergreifend, ein Tenant-User nur den eigenen Tenant. Clientseitig nicht manipulierbar.

AI-Service-Analyse

Auf der Fehlerübersicht oder Host-Detail-Seite gibt es pro Check einen Analyse-Button.

sequenceDiagram
    participant U as User
    participant API
    participant DB
    participant RAG
    participant LLM
    U->>API: POST /api/v1/ai/analyze/{service_id}/stream
    API->>DB: Status, Historie, Schwellwerte, Agent-/Collector-Status
    API->>RAG: Wiki-Suche zum Check
    API->>LLM: System-Prompt + Kontext + RAG
    LLM-->>API: Streaming-Antwort mit Quellen
    API-->>U: Slide-In-Panel

Reichhaltiger Kontext

Was die Analyse als Kontext bekommt:

  • Status, Statusdauer, letzter Wert
  • Check-Historie und Statuswechsel-Historie
  • Agent-/Collector-Verbindungsstatus
  • Schwellwerte, ACK-/Downtime-Flags

Cache

Analysen werden mit dem aktuellen Status als Schlüssel zwischengespeichert — bei unverändertem Status liefert ein erneuter Aufruf die gecachte Antwort, keine neue LLM-Anfrage. Ändert sich der Status, wird der Cache ungültig.

Der Neu generieren-Button erzwingt eine frische Analyse mit leicht erhöhter Temperature (bis max. 1,0) — sinnvoll, wenn die erste Antwort nicht half.

Datenschutz

Was geht zum LLM?

Feature Was geht raus
Chat (nur eigenes Wissen an) nur deine Frage + Conversation-History
Chat (Wiki an) + gefundene Wiki-Artikel-Auszüge
Chat (Internet an) + Web-Snippets — deine Frage geht dafür an die Web-Suche
Analyse Check-Kontext (Hostname nicht maskiert) + Wiki + ggf. Web

Hostname und Wiki-Inhalt verlassen den Server

Bei Provider Anthropic oder Extern geht der Anfrage-Kontext zur konfigurierten API — Hostnamen werden dabei nicht maskiert. Bei Ollama lokal verlässt nichts den eigenen Stack. Bei Datenschutz-Bedenken also Provider auf Ollama setzen.

Was geht NICHT zum LLM?

  • Keine Passwörter, Tokens, API-Keys, SNMP-Communities
  • Keine Audit-Log-Einträge
  • Keine tenant-fremden Daten
  • Keine User-Liste, keine SLA-Reports

Der System-Prompt ist versionierter Code, nicht user-konfigurierbar — kein Einfallstor für Prompt-Injection über eigene Eingaben.

Sichtbarkeit

flowchart LR
    A[AI sichtbar?]
    A --> S{Instanz aktiviert?}
    S -->|nein| H1[Ausgeblendet]
    S -->|ja| P{Permission ai.query/ai.analyze?}
    P -->|nein| H2[Ausgeblendet]
    P -->|ja| U{User-Präferenz hide_ai?}
    U -->|an| H3[Ausgeblendet]
    U -->|aus| Y[Sichtbar]

Pro User in Einstellungen → Präferenzen lässt sich das Chat-Widget komplett ausblenden — unabhängig davon, ob Instanz und Rolle es erlauben.

Permissions

Permission Wirkung
ai.query Chat öffnen, Anfragen stellen
ai.analyze Service-Analyse starten
admin.system Provider und Modell konfigurieren (Admin)

Anschluss