Files
glpi-ai-agent/.env.example
T
2026-08-01 23:02:33 +02:00

638 lines
22 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###############################################################################
# GLPI AI STACK - GEMEINSAME .ENV
#
# Diese Datei hat zwei Aufgaben:
#
# 1. Docker Compose verwendet sie zur Variablenersetzung:
# ${KB_DATA_PATH:-./knowledge}
# ${AGENT_PORT:-7080}
# usw.
#
# 2. Der GLPI AI Agent lädt sie über:
# env_file:
# - .env
#
# Hinweise:
# - Boolean: true | false
# - Zeitangaben: 30s, 5m, 2h, 72h
# - Scores: 0.0 bis 1.0
# 0.70 = 70 %
# - Listen: komma-separiert, möglichst ohne Leerzeichen
#
# relative Host-Pfade wie ./knowledge2 beziehen sich auf das Compose-Projekt.
# Pfade innerhalb des Agent-Containers sollten absolut angegeben werden.
###############################################################################
###############################################################################
# 01. DOCKER COMPOSE - PORTS
###############################################################################
# WebUI / API / Diagnose-Cockpit des GLPI AI Agents.
# Aufruf normalerweise:
# http://<docker-host>:7080
AGENT_PORT=7080
# Knowledge-Base-Suchoberfläche.
KB_SEARCH_PORT=7081
# Knowledge-Base-Administration.
KB_EDITOR_PORT=7082
###############################################################################
# 02. DOCKER COMPOSE - GEMEINSAME DATENVERZEICHNISSE
###############################################################################
# Zentrale Knowledge Base auf dem Docker-Host.
#
# Dieses Verzeichnis wird gemeinsam verwendet von:
# - Agent read-only
# - KB Editor read-write
# - KB Search read-only
#
# Wichtig:
# In der compose.yml sollten ALLE drei Dienste KB_DATA_PATH verwenden.
KB_DATA_PATH=./knowledge
# Backups des Knowledge-Base-Editors.
KB_BACKUP_PATH=./backups
# Staging-Bereich für neue bzw. KI-unterstützt erzeugte KB-Artikel.
KB_STAGING_PATH=./staging
###############################################################################
# 03. KNOWLEDGE-BASE WEBANWENDUNGEN
###############################################################################
# ---------------------------------------------------------------------------
# KB EDITOR
# ---------------------------------------------------------------------------
EDITOR_TITLE=KB Administration
EDITOR_SUBTITLE=Wissensbasis verwalten
# Optionaler Basic-Auth-Zugang des Editors.
#
# Leer bedeutet je nach Anwendungskonfiguration keine Basic-Auth-Anmeldung.
# Für produktiven Betrieb sollten Benutzername und Passwort gesetzt werden.
EDITOR_AUTH_USER=
EDITOR_AUTH_PASSWORD=<SECRET>
# ---------------------------------------------------------------------------
# KB SEARCH
# ---------------------------------------------------------------------------
SEARCH_TITLE=Stadt Hilden - KB-Datenbank
SEARCH_SUBTITLE=Interne Lösungsdatenbank
SEARCH_AUTH_USER=
SEARCH_AUTH_PASSWORD=<SECRET>
# Intervall, in dem die Suchanwendung die KB-Dateien erneut einliest.
#
# Beispiele:
# 30s
# 60s
# 5m
AUTO_RELOAD_INTERVAL=60s
###############################################################################
# 04. KNOWLEDGE-BASE WEBANWENDUNGEN - OLLAMA
###############################################################################
# KI-Fallback der KB-Anwendungen.
#
# HINWEIS:
# Diese Einstellung betrifft kb-editor / kb-search.
# Der GLPI AI Agent besitzt unabhängig davon seine eigene Ollama-Konfiguration.
AI_FALLBACK_ENABLED=true
# Ollama-Adresse für kb-editor / kb-search innerhalb des Compose-Netzwerks.
#
# Nicht mit OLLAMA_URL des Agents verwechseln.
OLLAMA_BASE_URL=http://ollama:11434
# Chat-Modell.
#
# Diese Variable wird aktuell sowohl von den KB-Anwendungen als auch vom
# Agenten verwendet. Dadurch verwenden alle Anwendungen dasselbe Modell.
OLLAMA_MODEL=qwen3:8b
# Gemeinsamer Timeout.
OLLAMA_TIMEOUT=10m
# Maximale parallele Ollama-Aufrufe.
#
# Bei einer einzelnen GPU bzw. begrenzten Ressourcen ist 1 ein guter
# Ausgangswert.
OLLAMA_MAX_CONCURRENT=1
# Soll ein vom KB-System erzeugter Staging-Artikel automatisch mit
# auto_reply=true erzeugt werden?
#
# Sicherer Ausgangswert:
# false
OLLAMA_STAGING_AUTO_REPLY=false
# min_score für erzeugte Staging-Artikel.
OLLAMA_STAGING_MIN_SCORE=0.70
###############################################################################
# 05. GLPI AI AGENT - ALLGEMEINER BETRIEB
###############################################################################
# true:
# Der Agent analysiert vollständig, schreibt aber keine Änderungen nach GLPI.
#
# false:
# Durch die Policy freigegebene Aktionen werden tatsächlich ausgeführt.
#
# Für Tests / Einführung:
# true
DRY_RUN=true
# Mögliche Werte:
# debug
# info
# warn
# error
LOG_LEVEL=info
# HTTP-Listener INNERHALB des Agent-Containers.
#
# AGENT_PORT oben bestimmt dagegen den veröffentlichten Host-Port.
HTTP_ADDR=:7080
# Persistentes Verzeichnis IM Container.
#
# Compose mountet:
# agent-data:/app/data
#
# Enthält unter anderem:
# - Knowledge-Index
# - Audit/Run-Daten
# - Category Learning
# - Managed Knowledge
# - GLPI-KB-Cache
DATA_DIR=/app/data
###############################################################################
# 06. AGENT WEBUI / API / DIAGNOSE
###############################################################################
# Benutzer für Agent-Dashboard, Knowledge-Verwaltung und Diagnose-Cockpit.
WEB_USERNAME=admin
WEB_PASSWORD=<SECRET>
# false:
# Anmeldung erforderlich.
#
# true:
# Weboberfläche ohne Authentifizierung erreichbar.
#
# In Produktion normalerweise false.
WEB_ALLOW_ANONYMOUS=false
# TrustedNet-Kennzeichnung vor automatisch ausgewählten Antworten.
#
# true:
# TrustedNet-KI-Badge wird vor Anrede und Antwort eingefügt.
#
# false:
# keine KI-Kennzeichnung.
AI_CONTENT_LABEL_ENABLED=true
###############################################################################
# 07. OPTIONALER GLPI-WEBHOOK
###############################################################################
# Optionales Shared Secret für eingehende GLPI-Webhooks.
#
# Der Absender muss dasselbe Secret z. B. über:
# X-Webhook-Secret
# übertragen.
#
# Leer lassen, falls kein Webhook verwendet wird.
WEBHOOK_SECRET=<SECRET>
###############################################################################
# 08. GLPI 11 / HIGH-LEVEL API / OAUTH2
###############################################################################
GLPI_URL=https://glpi.example.com
# Verwendete GLPI High-Level API.
GLPI_API_VERSION=v2.3
# OAuth2 Service Account.
GLPI_CLIENT_ID=<SECRET>
GLPI_CLIENT_SECRET=<SECRET>
GLPI_USERNAME=ai
GLPI_PASSWORD=<SECRET>
# Numerische GLPI-Benutzer-ID des Service-Accounts.
#
# Wird unter anderem benötigt, um Agent-Followups von menschlichen
# Followups unterscheiden zu können.
GLPI_AGENT_USER_ID=999
# Nur für lokale Testsysteme ohne TLS.
#
# Produktion:
# false
GLPI_ALLOW_INSECURE_HTTP=false
###############################################################################
# 09. GLPI TICKET-POLLING
###############################################################################
# Fail-closed Whitelist erlaubter GLPI-Ticketstatus.
#
# Beispiel:
# 1
# 1,2
#
# Status 1 entspricht typischerweise "Neu".
GLPI_ALLOWED_STATUS_IDS=1
# Polling-Intervall.
GLPI_POLL_INTERVAL=30s
# Maximale Anzahl Tickets pro Poll.
GLPI_POLL_LIMIT=50
# Optionale serverseitige Vorfilterung.
#
# Die Agent-Policy prüft GLPI_ALLOWED_STATUS_IDS anschließend trotzdem selbst.
#
# Änderungen der Syntax immer gegen /api.php/doc der eigenen GLPI-Instanz
# prüfen.
GLPI_TICKET_FILTER=status.id==1
# HTTP-Timeout für GLPI-Aufrufe.
GLPI_TIMEOUT=20s
###############################################################################
# 10. GLPI AI AGENT - OLLAMA
###############################################################################
# Ollama-Adresse aus Sicht des Agent-Containers.
OLLAMA_URL=http://ollama:11434
# OLLAMA_MODEL ist bereits oben im gemeinsamen Compose-/Ollama-Bereich gesetzt:
# OLLAMA_MODEL=qwen3:8b
# Embedding-Modell für RAG.
OLLAMA_EMBEDDING_MODEL=embeddinggemma
# Modellspezifisches Retrieval-Prompting.
#
# Mögliche Werte:
#
# auto
# Modell automatisch erkennen und passende Retrieval-Prompts verwenden.
# Für embeddinggemma empfohlen.
#
# plain
# keine modellspezifischen Retrieval-Prompts.
KNOWLEDGE_EMBEDDING_PROFILE=auto
# OLLAMA_TIMEOUT und OLLAMA_MAX_CONCURRENT sind bereits oben gesetzt.
# Maximale Anzahl generierter Tokens für strukturierte Antworten.
OLLAMA_NUM_PREDICT=768
# Wiederholungen bei fehlerhaftem / abgeschnittenem JSON.
OLLAMA_JSON_RETRIES=1
# Ollama-Modell nach Benutzung im Speicher halten.
#
# Beispiele:
# 5m
# 10m
# 30m
OLLAMA_KEEP_ALIVE=10m
# Thinking bei unterstützten Modellen deaktivieren.
#
# Für strukturierte Klassifikations-/Policy-Aufgaben empfohlen.
OLLAMA_THINK=false
###############################################################################
# 11. KNOWLEDGE BASE / RAG - BASIS
###############################################################################
# Knowledge-Verzeichnis IM Agent-Container.
#
# Compose sollte hierhin KB_DATA_PATH mounten:
# ${KB_DATA_PATH:-./knowledge}:/app/knowledge:ro
KNOWLEDGE_DIR=/app/knowledge
# Gesamtes Retrieval-System aktivieren.
RAG_ENABLED=true
###############################################################################
# 12. EXTERNE KNOWLEDGE-KATEGORIEN
###############################################################################
# Verhalten bei String-/Fremdkategorien, z. B.:
#
# "AI-Staging"
# "Outlook"
# "E-Mail"
# "Signatur"
#
# Mögliche Werte:
#
# unscoped
# Artikel bleibt nutzbar.
# Fremdkategorien können als Retrieval-Metadaten dienen.
#
# skip
# Artikel mit unbekannten Kategorien überspringen.
#
# strict
# unbekannte Kategorie als Fehler behandeln.
#
# Für eine gemeinsam mit anderen Anwendungen verwendete KB:
# unscoped
KNOWLEDGE_CATEGORY_MODE=unscoped
# Optionales Mapping von Fremdkategorien auf GLPI-ITIL-Kategorie-IDs.
#
# Beispiel knowledge-category-map.json:
#
# {
# "Outlook": 12,
# "E-Mail": 12,
# "Active Directory": 2,
# "Security": [20,21]
# }
KNOWLEDGE_CATEGORY_MAP_FILE=/app/data/knowledge-category-map.json
# Optional bestimmte KB-Dateien ignorieren.
#
# Beispiele:
# KB-SEC-ATTCK-*.json
# legacy-*.json,external-only-*.json
#
# Leer:
# keine zusätzlichen Ignore-Regeln.
KNOWLEDGE_IGNORE_GLOBS=
###############################################################################
# 13. PERSISTENTER KNOWLEDGE-INDEX
###############################################################################
# Mögliche Werte:
#
# incremental
# Persistent gespeicherten Index sofort verwenden.
# Neue/geänderte Dateien anschließend inkrementell nachziehen.
# Für Produktion empfohlen.
#
# rebuild
# vollständigen Index neu erzeugen.
#
# readonly
# nur bestehenden Index verwenden, keine Änderungen übernehmen.
KNOWLEDGE_INDEX_MODE=incremental
# Anzahl Texte pro Embedding-Batch.
KNOWLEDGE_EMBED_BATCH_SIZE=64
# Intervall für neue/geänderte/gelöschte Dateien.
#
# Beispiele:
# 30s
# 1m
# 5m
#
# 0:
# keinen automatischen Hintergrundscan durchführen.
KNOWLEDGE_INDEX_SCAN_INTERVAL=5m
###############################################################################
# 14. RETRIEVAL / DYNAMISCHE KANDIDATENAUSWAHL
###############################################################################
# Unterhalb dieses Retrieval-Scores wird eine KB nicht als geeigneter
# Kandidat betrachtet.
#
# Der Wert ist KEINE Wahrscheinlichkeit.
KNOWLEDGE_RETRIEVAL_FLOOR=0.30
# Maximale Differenz zum besten Treffer.
#
# Beispiel:
#
# bester Treffer 0.82
# MAX_GAP 0.20
# dynamischer Cutoff 0.62
#
# Ein Kandidat mit 0.55 würde dann nicht an die KI gesendet.
KNOWLEDGE_CANDIDATE_MAX_GAP=0.20
# Maximale Anzahl Knowledge-Kandidaten, die tatsächlich an Ollama gehen.
KNOWLEDGE_TOP_K=6
# Anzahl Kandidaten für Audit / Diagnose.
#
# Kann größer als KNOWLEDGE_TOP_K sein.
KNOWLEDGE_AUDIT_TOP_K=10
###############################################################################
# 15. HYBRID-RETRIEVAL - RANKING-GEWICHTE
###############################################################################
# Die Werte beschreiben die Gewichtung beim KB-Ranking.
#
# Summe aktuell:
# 1.0
#
# Fehlende Metadaten sollen nicht automatisch negativ bewertet werden.
# Embedding-/Chunk-Semantik.
KNOWLEDGE_WEIGHT_SEMANTIC=0.45
# Ticket-Betreff gegenüber KB-Titel.
KNOWLEDGE_WEIGHT_TITLE=0.20
# Lexikalische / sprachliche Übereinstimmung.
KNOWLEDGE_WEIGHT_LEXICAL=0.20
# KB-Keywords.
KNOWLEDGE_WEIGHT_KEYWORDS=0.075
# Kategorie-/Lernsignal.
KNOWLEDGE_WEIGHT_CATEGORY=0.075
###############################################################################
# 16. FINALE EVIDENZ FÜR AUTO-REPLY
###############################################################################
# Mindestwert der FINALEN Evidenz.
#
# WICHTIG:
# Das ist nicht der reine Retrieval-Score.
#
# Die finale Evidenz kombiniert:
# - Retrieval
# - AI Confidence
# - Kategorieübereinstimmung
KNOWLEDGE_MIN_SCORE=0.70
# Gewicht Retrieval.
KNOWLEDGE_EVIDENCE_WEIGHT_RETRIEVAL=0.45
# Gewicht KI-Auswahl / KI-Confidence.
KNOWLEDGE_EVIDENCE_WEIGHT_AI=0.35
# Gewicht Kategorieübereinstimmung.
KNOWLEDGE_EVIDENCE_WEIGHT_CATEGORY=0.20
###############################################################################
# 17. KNOWLEDGE-CHUNKING
###############################################################################
# Ungefähre Anzahl Wörter pro Dokument-Chunk.
KNOWLEDGE_CHUNK_WORDS=160
# Überlappung benachbarter Chunks.
KNOWLEDGE_CHUNK_OVERLAP_WORDS=30
# Maximale Anzahl Chunks pro KB-Dokument.
KNOWLEDGE_MAX_CHUNKS_PER_DOC=24
# Maximale Anzahl Query-Chunks bei sehr langen Tickets.
KNOWLEDGE_MAX_QUERY_CHUNKS=64
# Maximale Anzahl Kategorien im Kategorie-Prompt.
CATEGORY_PROMPT_LIMIT=80
###############################################################################
# 18. KNOWLEDGE-QUELLEN / TRUST POLICY
###############################################################################
# Quellen für normale Knowledge-Suche und mögliche Antwortkandidaten.
# Indexiert wird die Vereinigung mit KNOWLEDGE_CATEGORY_SOURCES.
#
# Beispiele:
# internal-kb
# glpi-kb
# runbook
# vendor-docs
KNOWLEDGE_ALLOWED_SOURCES=internal-kb,glpi-kb,vendor-docs,vendor-docs-ms,vendor-docs-linux,vendor-docs-sec
# Quellen, die ausschließlich die Kategorieentscheidung unterstützen.
# Ohne explizite Angabe wird aus Kompatibilitätsgründen KNOWLEDGE_ALLOWED_SOURCES verwendet.
# Mit "none" wird Knowledge-Einfluss auf die Kategorisierung deaktiviert.
KNOWLEDGE_CATEGORY_SOURCES=internal-category
# Nur diese Quellen dürfen grundsätzlich automatische Antworten liefern.
#
# Muss eine Teilmenge von KNOWLEDGE_ALLOWED_SOURCES sein.
#
# Beispiel zum kompletten Abschalten:
# KNOWLEDGE_AUTO_REPLY_SOURCES=none
KNOWLEDGE_AUTO_REPLY_SOURCES=internal-kb,glpi-kb,vendor-docs,vendor-docs-ms,vendor-docs-linux,vendor-docs-sec
# Webbasierte Bearbeitung von Agent-eigenen Knowledge-Artikeln.
#
# Diese werden unter:
# DATA_DIR/knowledge-managed
# gespeichert.
#
# Das statische KNOWLEDGE_DIR bleibt read-only.
KNOWLEDGE_WEB_EDIT_ENABLED=true
###############################################################################
# 19. GLPI KNOWLEDGE BASE CONNECTOR
###############################################################################
# GLPI-interne Knowledge Base synchronisieren.
GLPI_KB_ENABLED=true
# auto:
# Agent ermittelt die KnowbaseItem-Route aus /api.php/doc.json.
GLPI_KB_PATH=auto
# Optionaler serverseitiger GLPI-Filter.
#
# Leer:
# alle für den Service Account sichtbaren Artikel, begrenzt durch LIMIT.
GLPI_KB_FILTER=
# Maximale Anzahl GLPI-KB-Artikel.
GLPI_KB_LIMIT=500
# Synchronisationsintervall.
GLPI_KB_SYNC_INTERVAL=10m
# source-Wert importierter GLPI-KB-Artikel.
GLPI_KB_SOURCE=glpi-kb
# true:
# GLPI-KB-Artikel können grundsätzlich Auto-Replies auslösen.
#
# Zusätzlich gelten weiterhin alle anderen Policy-Gates.
GLPI_KB_AUTO_REPLY=true
# Whitelist der GLPI KNOWLEDGE-BASE-Kategorie-IDs.
#
# WICHTIG:
# Dies sind NICHT die ITIL-/Ticketkategorie-IDs.
#
# Mehrere Werte:
# 1,2,7
GLPI_KB_AUTO_REPLY_CATEGORY_IDS=1
###############################################################################
# 20. HUMAN-IN-THE-LOOP / KATEGORIE-LERNEN
###############################################################################
# Menschlich bestätigte/korrigierte Entscheidungen als Lernbeispiele verwenden.
#
# Der Agent lernt NICHT automatisch aus seinen eigenen unbestätigten
# Entscheidungen.
LEARNING_ENABLED=true
# Maximale Anzahl gespeicherter Beispiele.
LEARNING_MAX_EXAMPLES=500
# Maximale Beispiele pro Kategorie im Prompt.
LEARNING_EXAMPLES_PER_CATEGORY=5
###############################################################################
# 21. KOMMUNIKATIONSPOLICY
###############################################################################
# Erwartete Sprache von Auto-Reply-KBs.
COMMUNICATION_LANGUAGE=de-DE
# Erwarteter Kommunikationsstil.
COMMUNICATION_STYLE=formal
# Wird vor die Knowledge-Antwort gesetzt.
COMMUNICATION_SALUTATION=Guten Tag,
# Abschluss.
COMMUNICATION_CLOSING=Mit freundlichen Grüßen
COMMUNICATION_SIGNATURE=IT-Service
###############################################################################
# 22. OPERATIONAL CONTEXT - GLOBAL
###############################################################################
# Globaler Schalter für zusätzliche Betriebsinformationen:
# - Changes
# - Major Incidents
# - Requester-Geräte
# - Uptime Kuma
CONTEXT_ENABLED=true
# Timeout für Kontextabfragen.
CONTEXT_TIMEOUT=12s
# Mindestscore, ab dem Incident/Outage als für das Ticket relevant gilt.
CONTEXT_RELEVANCE_MIN_SCORE=0.20
# true:
# Fehler einer aktivierten Kontextquelle blockieren Auto-Reply.
#
# Fail-closed und für Produktion empfohlen.
CONTEXT_BLOCK_AUTO_REPLY_ON_ERRORS=true
# true:
# relevante zentrale Störung blockiert individuelle Standardantwort.
CONTEXT_BLOCK_AUTO_REPLY_ON_INCIDENT=true
###############################################################################
# 23. GLPI CHANGE CALENDAR
###############################################################################
CHANGE_CALENDAR_ENABLED=true
# API-Route.
GLPI_CHANGE_PATH=/Assistance/Change
# Optionaler serverseitiger GLPI-Filter.
GLPI_CHANGE_FILTER=
# Maximale Anzahl geladener Changes.
GLPI_CHANGE_LIMIT=100
# Betrachteter Zeitraum in der Vergangenheit.
CHANGE_LOOKBACK=72h
# Betrachteter Zeitraum in der Zukunft.
CHANGE_LOOKAHEAD=24h
###############################################################################
# 24. MAJOR INCIDENTS
###############################################################################
# Major Incidents über GLPI-Tickets ermitteln.
#
# Erst aktivieren, wenn GLPI_MAJOR_INCIDENT_FILTER getestet wurde.
MAJOR_INCIDENTS_ENABLED=false
# Expliziter Filter für Tickets, die als Major Incident gelten.
GLPI_MAJOR_INCIDENT_FILTER=
GLPI_MAJOR_INCIDENT_LIMIT=20
###############################################################################
# 25. REQUESTER -> GERÄT / ASSET CONTEXT
###############################################################################
# Zusätzlich zu direkt verknüpften Ticket-Assets Geräte des Requesters suchen.
USER_DEVICE_CONTEXT_ENABLED=true
# Asset-Routen.
GLPI_USER_DEVICE_PATHS=/Assets/Computer
# {{user_id}} wird vom Agenten ersetzt.
GLPI_USER_DEVICE_FILTER_TEMPLATE=user.id=={{user_id}}
# Maximale Anzahl Geräte je Suche.
GLPI_USER_DEVICE_LIMIT=20
###############################################################################
# 26. UPTIME KUMA
###############################################################################
# Globaler Schalter für Uptime-Kuma-Kontext.
UPTIME_KUMA_ENABLED=false
UPTIME_KUMA_URL=https://uptime.example.com
# Mögliche Werte:
#
# metrics
# authentifizierte Prometheus-Metrics.
#
# status_page
# öffentliche/publizierte Statusseiten.
UPTIME_KUMA_MODE=metrics
# Nur in metrics erforderlich.
UPTIME_KUMA_API_KEY=<SECRET>
# Nur in status_page erforderlich.
#
# Mehrere Slugs:
# it-services,network,applications
UPTIME_KUMA_STATUS_PAGES=it-services
UPTIME_KUMA_TIMEOUT=10s
# Maximale Anzahl gleichzeitig berücksichtigter Probleme.
UPTIME_KUMA_MAX_ISSUES=20
# Maintenance ebenfalls als Kontext berücksichtigen.
UPTIME_KUMA_INCLUDE_MAINTENANCE=true
# Optional: bei eindeutig passender Uptime-Kuma-Störung oder Wartung einen
# ausschließlich vom Betreiber vorgegebenen Text senden. Die KI erzeugt keinen
# Antworttext; sie wählt nur einen aktiven Kandidaten und liefert eine Confidence.
CONTEXT_STATUS_REPLY_ENABLED=false
CONTEXT_STATUS_REPLY_MIN_RELEVANCE=0.50
CONTEXT_STATUS_REPLY_MIN_AI_CONFIDENCE=0.80
# Finaler Score = Relevanz × KI-Confidence.
CONTEXT_STATUS_REPLY_MIN_FINAL_SCORE=0.45
# Literal \n wird als Zeilenumbruch interpretiert. Verfügbare Platzhalter:
# {{service_name}}, {{status}}, {{status_page}}, {{message}},
# {{incident_title}}, {{incident_content}}, {{last_heartbeat}}
CONTEXT_INCIDENT_REPLY_TEXT=Zu Ihrer Meldung liegt derzeit wahrscheinlich eine zentrale Störung bei {{service_name}} vor. Die Einschränkung kann damit zusammenhängen. Wir beobachten den Status.
CONTEXT_MAINTENANCE_REPLY_TEXT=Für {{service_name}} läuft derzeit eine Wartung. Die von Ihnen beschriebene Einschränkung kann damit zusammenhängen. Bitte testen Sie den Dienst nach Abschluss der Wartung erneut.
###############################################################################
# 27. POLICY-GATES
###############################################################################
# Automatische Kategorisierung zulassen.
AUTO_CATEGORY=true
# Automatische Antworten grundsätzlich zulassen.
#
# DRY_RUN=true verhindert trotzdem das tatsächliche Schreiben nach GLPI.
AUTO_REPLY=true
# Mindestconfidence der KI für Kategorieänderungen.
CATEGORY_CONFIDENCE=0.70
# Mindestconfidence der KI für Antwortauswahl.
#
# Dies allein reicht NICHT für Auto-Reply.
# Zusätzlich gelten unter anderem:
#
# - Knowledge-Evidenz
# - Retrieval-Regeln
# - Source Policy
# - KB auto_reply
# - Kommunikationspolicy
# - Followup-Prüfung
# - Kontext-/Incident-Regeln
# - zweite Followup-Prüfung unmittelbar vor dem Schreiben
REPLY_CONFIDENCE=0.70
###############################################################################
# 28. WORKER / QUEUE
###############################################################################
# Maximale Anzahl wartender Jobs.
QUEUE_SIZE=256
# Parallele Ticket-Worker.
#
# Darf größer als OLLAMA_MAX_CONCURRENT sein.
# Ollama wird separat begrenzt.
WORKERS=2