AI-Chat & Analyse¶
Vesana hat zwei AI-Features:
- AI-Chat — frei stellbare IT-Fragen, mit RAG aus dem Wiki und Web-Suche als Fallback
- 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 | Anfragen an das Modell bleiben im Stack (Web-Suche siehe Datenschutz) | 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¶
Der KI-Assistent öffnet sich wahlweise als Bubble unten rechts oder als Seitenleiste — per Knopf im Kopf des Fensters umschaltbar, die Wahl (und die Breite der Seitenleiste) bleibt pro Browser gespeichert. Auf Kiosk-/TV-Ansichten und öffentlichen Seiten erscheint er nicht.
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 (Default 90 Tage; beliebige Tageszahl, Schnellwahl 7 Tage bis 1 Jahr oder unbegrenzt = 0). Gelöscht wird eine Unterhaltung, wenn sie so lange keine neue Nachricht bekommen hat; angeheftete sind immer ausgenommen. Alle Verläufe löschen entfernt die Unterhaltungen aller Personen der Instanz.
- Admin → System → KI → Gleichzeitige KI-Anfragen je Person (Erweiterte Einstellungen): Obergrenze für gleichzeitig laufende KI-Anfragen je Person (Standard 3; 0 = unbegrenzt, höchstens 50). Wird sie erreicht, steht im Chat „Es laufen bereits N KI-Anfragen …“; bereits laufende Anfragen laufen weiter. Die Einstellung wird sofort gespeichert.
Wissensquellen-Toggles¶
Unter dem Eingabefeld drei Schalter, alle standardmäßig an:
| Toggle | Bedeutung |
|---|---|
| 📖 Wiki | RAG + FTS aus dem eigenen Wiki — nur, wenn die Vorschau-Funktion „Wiki“ freigeschaltet ist; sonst fehlt der Schalter und die KI sucht dort nicht |
| 🌐 Internet | Web-Suche als Fallback (nur bei weniger als zwei Wiki-Treffern) |
| 🧠 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 offen, 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, der Host-Detail-Seite und im Check-Detail gibt es pro Check einen Knopf für die KI-Analyse. Sie öffnet sich als Slide-In-Panel.
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:
- Check-Name und -Typ, Hostname und Host-Adresse
- Status, Statusmeldung, Statusdauer, letzter Wert, Versuch x von y
- die letzten 10 Check-Ergebnisse und die letzten 5 Statuswechsel
- Agent-/Collector-Verbindungsstatus (Version, Betriebssystem, zuletzt gesehen)
- Intervall, 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 um 0,3 erhöhter Temperature (höchstens 1,0) — sinnvoll, wenn die erste Antwort nicht half. Modelle, die keine Temperature annehmen, antworten trotzdem neu, aber ohne diesen Effekt.
Nach der Analyse¶
- Nachfragen öffnet einen Chat zur Analyse („Nachfragen zur Analyse"), der die Diagnose als Kontext kennt (läuft über den Chat, braucht also
ai.query). - Ähnliche Wiki-Artikel listet die Artikel, die als Kontext eingeflossen sind.
- Als Wiki-Artikel speichern übernimmt die Diagnose in einen neuen Wiki-Artikel, der dem Check-Typ zugeordnet wird.
Die beiden Wiki-Punkte erscheinen nur, wenn die Vorschau-Funktion „Wiki“ eingeschaltet ist; Speichern braucht zusätzlich wiki.create.
Datenschutz¶
Was geht zum LLM?¶
| Feature | An den KI-Provider | An die Web-Suche (DuckDuckGo) |
|---|---|---|
| Chat, Wiki und Internet aus | deine Frage + bisheriger Verlauf (bis 10 Nachrichten) | nichts |
| Chat, Wiki an | + gefundene Wiki-Artikel | – |
| Chat, Internet an | + Web-Snippets | deine Frage — nur wenn das Wiki weniger als zwei Treffer liefert |
| Analyse | Check-Kontext (Hostname und Adresse nicht maskiert) + Wiki + ggf. Web-Snippets | Check-Name, Check-Typ und Statusmeldung — bei weniger als zwei Wiki-Treffern; in der Analyse nicht abschaltbar |
Was den Server verlässt
Bei Provider Anthropic oder Extern geht der Anfrage-Kontext zur konfigurierten API — Hostnamen werden dabei nicht maskiert. Mit Ollama bleiben die Anfragen an das Modell im eigenen Stack. Die Web-Suche läuft aber unabhängig vom Provider: auch mit Ollama gehen Chat-Fragen (Schalter „Internet" an) und bei der Analyse Check-Name, -Typ und Statusmeldung an DuckDuckGo, sobald das Wiki zu wenig liefert. Wer das nicht will, schaltet im Chat „Internet" aus — für die Analyse gibt es keinen Schalter, dann bleibt nur, die KI nicht zu verwenden.
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{Präferenz: KI ausgeblendet?}
U -->|an| H3[Ausgeblendet]
U -->|aus| Y[Sichtbar]
Jede Person kann unter Einstellungen → Präferenzen → KI-Funktionen mit KI-Assistent und KI-Analyse anzeigen den Chat und die Analyse-Knöpfe für sich ausblenden — unabhängig davon, ob Instanz und Rolle sie erlauben.
Permissions¶
| Permission | Wirkung |
|---|---|
ai.query |
Chat öffnen, Anfragen stellen |
ai.analyze |
Service-Analyse starten |
admin.system |
Provider und Modell konfigurieren (Admin) |
wiki.create |
Analyse als Wiki-Artikel speichern |
Anschluss¶
- AI-Provider einrichten — Setup
- Wiki — RAG-Quelle, je besser gepflegt desto besser die Antworten