From 88cce79e297f81c43b3fdcad3c333923871ca8d0 Mon Sep 17 00:00:00 2001 From: team2 Date: Wed, 18 Feb 2026 19:31:46 +0100 Subject: [PATCH] new layouts --- templates/admin/dashboard/index.html.twig | 324 +++++++++--------- .../admin/ingest_profile/create.html.twig | 106 ++++-- templates/admin/system/prompt.html.twig | 313 +++++++++-------- 3 files changed, 399 insertions(+), 344 deletions(-) diff --git a/templates/admin/dashboard/index.html.twig b/templates/admin/dashboard/index.html.twig index 9b492f1..813a7fb 100644 --- a/templates/admin/dashboard/index.html.twig +++ b/templates/admin/dashboard/index.html.twig @@ -1,207 +1,213 @@ {% extends 'admin/base.html.twig' %} -{% block title %}System Dashboard{% endblock %} +{% block title %}System-Dashboard{% endblock %} {% block body %} -
- {# ===================================================== #} - {# HEADER #} - {# ===================================================== #} + + +
-

System Overview

+

Systemübersicht

RAG Enterprise
- {# ===================================================== #} - {# GOVERNANCE BLOCK #} - {# ===================================================== #} + + + -
-
+
-
System Governance
+ {% if vectorHealth is defined %} + {% set status = vectorHealth.status %} + {% set badgeClass = + status starts with 'OK' + ? 'bg-success' + : (status == 'INCONSISTENT_MISSING_VECTOR' + ? 'bg-warning text-dark' + : 'bg-danger') + %} + {% endif %} -
-
- Current User:
- {{ app.user.userIdentifier }} -
+ +
+
+
-
- Roles:
- {{ app.user.roles|join(', ') }} -
-
+
Vektor-Infrastruktur
-
-
- - - {# ===================================================== #} - {# VECTOR INFRASTRUCTURE #} - {# ===================================================== #} - - {% if vectorHealth is defined %} - - {% set status = vectorHealth.status %} - - {% set badgeClass = - status starts with 'OK' - ? 'bg-success' - : (status == 'INCONSISTENT_MISSING_VECTOR' - ? 'bg-warning text-dark' - : 'bg-danger') - %} - -
-
- -
Vector Infrastructure
- -
- -
- Status
+ {% if vectorHealth is defined %} +

- {{ status }} + {{ vectorHealth.status }} + +

+ +
+ NDJSON-Chunks: {{ vectorHealth.ndjson_chunk_count|number_format(0, ',', '.') }} +
+ Vektor-Index-Chunks: {{ vectorHealth.vector_chunk_count|number_format(0, ',', '.') }} +
+ {% else %} +
+ Keine Infrastrukturdaten verfügbar. +
+ {% endif %} + +
+
+
+ + + {% set percent = chunkLimit > 0 ? (chunkCount / chunkLimit * 100)|round(1) : 0 %} + +
+
+
+ +
Wissenskapazität
+ +

+ {{ chunkCount|number_format(0, ',', '.') }} + + / {{ chunkLimit|number_format(0, ',', '.') }} +

+ +
+
+
-
- NDJSON Chunks
- {{ vectorHealth.ndjson_chunk_count|number_format(0, ',', '.') }} -
- -
- Vector Index Chunks
- {{ vectorHealth.vector_chunk_count|number_format(0, ',', '.') }} +
+ {{ percent }} % ausgelastet
- - {% if status starts with 'OK' %} -
- Infrastructure is consistent. -
- {% elseif status == 'INCONSISTENT_MISSING_VECTOR' %} -
- Vector index missing. Rebuild recommended. -
- {% else %} -
- Index inconsistency detected. Immediate review required. -
- {% endif %} -
- {% endif %} + +
+
+
+
System-Governance
- {# ===================================================== #} - {# KNOWLEDGE CAPACITY #} - {# ===================================================== #} +
+ Benutzer
+ {{ app.user.userIdentifier }} +
- {% set percent = chunkLimit > 0 ? (chunkCount / chunkLimit * 100)|round(1) : 0 %} +
+ Rollen
+ {{ app.user.roles|join(', ') }} +
-
-
- -
Knowledge Capacity
- -
- Chunks: - {{ chunkCount|number_format(0, ',', '.') }} - / - {{ chunkLimit|number_format(0, ',', '.') }} -
- -
-
- {{ percent }}%
- -
- System optimized for maximum - {{ chunkLimit|number_format(0, ',', '.') }} chunks. - {% if percent >= 95 %} -
Capacity limit nearly reached. - {% endif %} -
-
+
+ + + - {# ===================================================== #} - {# CRITICAL OPERATIONS (SUPER ADMIN ONLY) #} - {# ===================================================== #} +
- {% if is_granted('ROLE_SUPER_ADMIN') %} + {% if vectorHealth is defined %} -
-
+ +
+
+
-
Critical Operations
+
Details zur Vektor-Infrastruktur
-
- Full system reset removes: -
    -
  • All documents & versions
  • -
  • NDJSON index
  • -
  • FAISS vector index
  • -
  • All ingest jobs
  • -
- This action is irreversible. -
+
+
+
NDJSON-Chunks
+
+ {{ vectorHealth.ndjson_chunk_count|number_format(0, ',', '.') }} +
+
- {% for label, messages in app.flashes %} - {% for message in messages %} -
- {{ message }} +
+
Vektor-Index-Chunks
+
+ {{ vectorHealth.vector_chunk_count|number_format(0, ',', '.') }} +
+
- {% endfor %} - {% endfor %} - -
- - - - - -
+
+
-
- {% endif %} + {% endif %} + + {% if is_granted('ROLE_SUPER_ADMIN') %} + + +
+
+
+ +
Kritische Systemoperationen
+ +
+ Ein vollständiger System-Reset entfernt: +
    +
  • Alle Dokumente und Versionen
  • +
  • Den NDJSON-Index
  • +
  • Den FAISS-Vektorindex
  • +
  • Alle Ingest-Jobs
  • +
+ Diese Aktion ist nicht rückgängig zu machen. +
+ + {% for label, messages in app.flashes %} + {% for message in messages %} +
+ {{ message }} +
+ {% endfor %} + {% endfor %} + +
+ + + + + +
+ +
+
+
+ + {% endif %} + +
- {% endblock %} diff --git a/templates/admin/ingest_profile/create.html.twig b/templates/admin/ingest_profile/create.html.twig index 4910061..9beb402 100644 --- a/templates/admin/ingest_profile/create.html.twig +++ b/templates/admin/ingest_profile/create.html.twig @@ -12,6 +12,13 @@
+
+ Wichtiger Hinweis:
+ Änderungen am Indexierungsprofil beeinflussen die Struktur des Vektor-Indexes + (Chunking, Embedding, Scoring). Nach Aktivierung ist ein vollständiger + Global Reindex erforderlich. +
+
@@ -22,18 +29,20 @@
- - - + + +
-
Chunking
+
Chunking-Konfiguration

+

+ Definiert, wie Dokumente in semantische Textabschnitte (Chunks) zerlegt werden. + Diese Struktur beeinflusst Retrieval-Qualität, Kontextstabilität und Indexgröße. +

- +
- Größere Werte = weniger Chunks, mehr Kontext pro Chunk. + Maximale Wortanzahl pro Chunk. +

+ Kleinere Werte: Mehr Chunks, höhere Granularität, präziseres Retrieval. +
+ Größere Werte: Weniger Chunks, mehr Kontext pro Treffer. +

+ Empfehlung für Produkt- und Wissensdaten: 600–1000.
- +
- Überlappung zwischen Chunks zur Kontextstabilisierung. + Anzahl überlappender Wörter zwischen zwei Chunks. +

+ Verhindert Kontextabbrüche an Chunk-Grenzen. +
+ Typischer Bereich: 10–20 % der Chunk Size.
- - - -
-
Embedding
+ + + +
+
Embedding-Konfiguration

+

+ Definiert das Modell zur Vektorisierung der Textabschnitte. + Embeddings bestimmen die semantische Ähnlichkeitsberechnung im FAISS-Index. +

- + +
+ Das Embedding-Modell erzeugt numerische Vektoren aus Text. + Modellwechsel erfordert zwingend einen Global Reindex. +
- +
- Muss mit dem Embedding-Modell übereinstimmen. + Muss exakt zur Dimension des gewählten Embedding-Modells passen. + Falsche Werte führen zu inkonsistentem Vektorindex.
- - - -
-
Scoring
+ + + +
+
Scoring & Retrieval

+

+ Definiert die Bewertungslogik für Retrieval-Ergebnisse. + Änderungen wirken sich direkt auf die Gewichtung von Keyword- und + Vektor-Treffern aus. +

- +
- Erhöhung erzwingt Global Reindex. + Versionskennzeichnung der Scoring-Logik. +

+ Eine Erhöhung erzwingt: +
    +
  • Neuaufbau des NDJSON-Index
  • +
  • Vollständigen FAISS-Rebuild
  • +
+ Gewährleistet reproduzierbare Retrieval-Ergebnisse.
@@ -139,7 +171,9 @@
- Hinweis: Änderungen am Indexierungsprofil wirken sich auf die Struktur des - Vektor-Indexes aus. Nach Aktivierung ist ein vollständiger Reindex erforderlich. + Governance-Hinweis: + Ein Indexierungsprofil ist versioniert und deterministisch. + Änderungen sollten nur geplant erfolgen, da sie die komplette + Wissensstruktur neu generieren.
{% endblock %} diff --git a/templates/admin/system/prompt.html.twig b/templates/admin/system/prompt.html.twig index c3355f5..3403c2d 100644 --- a/templates/admin/system/prompt.html.twig +++ b/templates/admin/system/prompt.html.twig @@ -4,171 +4,186 @@ {% block body %} -
-

System Prompt

-
- - {# ============================= #} - {# Flash Messages #} - {# ============================= #} - - {% for message in app.flashes('success') %} -
{{ message }}
- {% endfor %} - {% for message in app.flashes('danger') %} -
{{ message }}
- {% endfor %} - - {# ============================= #} - {# Versionen Übersicht #} - {# ============================= #} - -
-
- -
Versionen
- - - - - - - - - - - - - - {% for p in all %} - - - - - - - - - - - - {% else %} - - - - {% endfor %} - - -
VersionStatusKommentarErstelltAktionen
v{{ p.version }} - {% if p.active %} - Aktiv - {% else %} - - Inaktiv - - {% endif %} - {{ p.comment ?? '-' }}{{ p.createdAt|date('d.m.Y H:i:s') }} - - {% if not p.active and is_granted('ROLE_SUPER_ADMIN') %} - - {# Aktivieren #} -
- - - - -
- - {# Löschen #} -
- - - - -
- - {% else %} - - {% endif %} - -
- Keine Versionen vorhanden. -
+
+ +
+

System Prompt Verwaltung

-
-
- Hinweis: Der aktive System Prompt beeinflusst das Antwortverhalten - des LLM unmittelbar. Änderungen sollten dokumentiert und versioniert erfolgen. -
+ + {% for message in app.flashes('success') %} +
{{ message }}
+ {% endfor %} + {% for message in app.flashes('danger') %} +
{{ message }}
+ {% endfor %} - {# ============================= #} - {# Neue Version erstellen #} - {# ============================= #} +
-
-
+ + + -
Neue Version erstellen
+
-
- +
+
+ +
Versionen
+ +
+ + + + + + + + + + + + + {% for p in all %} + + + + + + + + + + + + {% else %} + + + + {% endfor %} + + +
VersionStatusKommentarErstelltAktionen
v{{ p.version }} + {% if p.active %} + Aktiv + {% else %} + + Inaktiv + + {% endif %} + {{ p.comment ?? '-' }}{{ p.createdAt|date('d.m.Y H:i:s') }} + + {% if not p.active and is_granted('ROLE_SUPER_ADMIN') %} + + + + + + + + +
+ + + + +
+ + {% else %} + + {% endif %} + +
+ Keine Versionen vorhanden. +
+
+ +
+ +
+ Governance-Hinweis:
+ Der aktive System Prompt beeinflusst das globale Antwortverhalten des LLM unmittelbar. + Änderungen sollten dokumentiert, versioniert und nachvollziehbar erfolgen. +
-
- - -
- Dokumentation der Änderung für spätere Nachvollziehbarkeit.
-
- -
- Verfügbare Variable: - {% verbatim %}{% now %}{% endverbatim %} - (aktuelles Datum/Zeit) +
+ + + + + +
+ +
+
+ +
Neue Version erstellen
+ +
+ + +
+ + +
+ Dokumentation der Änderung für spätere Nachvollziehbarkeit. +
+
+ +
+ + +
+ Verfügbare Variable: + {% verbatim %}{% now %}{% endverbatim %} + (aktuelles Datum / Zeit) +
+ + +
+ + {% if is_granted('ROLE_SUPER_ADMIN') %} +
+ +
+ {% endif %} +
+
-
- {% if is_granted('ROLE_SUPER_ADMIN') %} -
- -
- {% endif %} - +
+
- - {% endblock %}