10.1 KI-Assistent — Intelligenter Chat-Assistent

10.1 KI-Assistent — Intelligenter Chat-Assistent

Anleitung für Kundenadministratoren · UDM Admin Client

1

Überblick — Was kann der KI-Assistent?

Der KI-Assistent ist ein Chat-basiertes Werkzeug im UDM Admin Client, das Administratoren bei der Konfiguration und Verwaltung des UDM-Systems unterstützt. Er nutzt OpenAI als Sprachmodell und verfügt über umfangreiches Wissen über Ihre UDM-Konfiguration — Datenobjekte, Datenquellen, Dialoge, Ansichtselemente, Aktionen und Apps.

Der Assistent kann:

  • Konfigurationen automatisiert erstellen — Datenobjekte, Datenquellen, Dialoge, Ansichtselemente und Aktionen per Chat-Befehl anlegen
  • Fragen zu Ihrer UDM-Konfiguration beantworten — z. B. „Welche Felder hat die Entity ‚Customer’?“
  • Wissensdokumente als Kontext nutzen — Geschäftsregeln, Dokumentation und Konfigurationshinweise, die Sie als Administrator hinterlegen
  • Testdaten generieren — realistische, zusammenhängende Testdatensätze für eine oder mehrere Tabellen
  • Diagramme und Kalender erstellen — Charts, Scheduler und weitere Ansichtselemente konfigurieren
Zugang Im Admin Client über das Hauptmenü → KI-Assistent. Der Assistent ist nur verfügbar, wenn ein gültiger OpenAI API-Key konfiguriert ist.
2

Voraussetzungen — OpenAI API-Key

Damit der KI-Assistent funktioniert, muss ein OpenAI API-Key konfiguriert und der Assistent aktiviert sein. Diese Einstellung erfolgt in der Konfigurationsdatei appsettings.json auf dem Server.

Einstellung Beschreibung
AiAssistant:Enabled Muss auf true gesetzt sein, damit der Assistent verfügbar ist
AiAssistant:OpenAI:ApiKey Ihr OpenAI API-Key (beginnt mit sk-...). Darf nicht im Git-Repository gespeichert werden — nutzen Sie Umgebungsvariablen oder User Secrets
AiAssistant:OpenAI:Model Das verwendete Sprachmodell, z. B. gpt-4o (Standard: gpt-4)
Sicherheitshinweis Der API-Key ermöglicht kostenpflichtige Aufrufe an OpenAI. Bewahren Sie ihn sicher auf und teilen Sie ihn nicht über unsichere Kanäle. Speichern Sie den Key niemals direkt in der appsettings.json im Quellcode — verwenden Sie stattdessen Umgebungsvariablen.
3

KI-Konfiguration im Admin

Die KI-Konfiguration umfasst mehrere Bereiche, die sich auf das Verhalten und die Leistung des Assistenten auswirken.

OpenAI-Einstellungen

Parameter Beschreibung
Model Sprachmodell für den Chat (z. B. gpt-4o, gpt-4-turbo). Beeinflusst Qualität und Kosten
DataGenerationModel Modell für die Testdaten-Generierung (Standard: gpt-4o-mini — schnell und kostengünstig)
MaxOutputTokens Maximale Länge der KI-Antwort in Tokens (Standard: 4096)
Temperature Kreativität der Antworten: 0.0 = deterministisch, 1.7 = ausgewogen (Standard), 2.0 = maximal kreativ

Vector Store-Einstellungen

Der Vector Store ermöglicht semantische Suche über die UDM-Konfiguration. Er speichert Informationen über Datenobjekte, Datenquellen, Dialoge und mehr bei OpenAI und durchsucht diese intelligent pro Benutzeranfrage.

Parameter Beschreibung
VectorStore:Enabled true aktiviert den Vector Store-Modus (empfohlen). Bei false wird der textbasierte Fallback verwendet
VectorStore:VectorStoreId Wird beim ersten Start automatisch gesetzt. Muss normalerweise nicht manuell konfiguriert werden
VectorStore:MaxSearchResults Anzahl Suchergebnisse pro Anfrage (Standard: 20)
VectorStore:MinRelevanceScore Minimale Relevanz für Suchergebnisse, 0.0–1.0 (Standard: 0.5)
VectorStore:EnableFallback Bei Fehlern automatisch auf textbasierten Modus zurückfallen (Standard: true)
Empfehlung Aktivieren Sie den Vector Store für beste Ergebnisse. Er reduziert den Token-Verbrauch um ca. 85 % und liefert gezieltere Antworten, da nur relevante Informationen aus Ihrer Konfiguration geladen werden.
AdminClient → KI-Assistent → Chat-Verlauf mit Tool-Bestätigung
+ Neuer Chat Zeitprotokoll Bearbeitete Elemente Konversation durchsuchen…
👤
Sie
10:14
Lege bitte ein Ansichtselement „Offene Vorgänge“ auf Datenquelle DS_Vorgang als Grid an.
🤖
KI-Assistent
10:14 · 1.842 Token
Verstanden. Ich erstelle ein Grid-Ansichtselement mit folgenden Spalten: Vorgangsnummer, Titel, Status, Zuständig, Fälligkeit. Bestätigung erforderlich · Vector Store aktiv
4

Wissensdokumente verwalten

Wissensdokumente sind Texte, die Sie als Administrator hinterlegen, damit der KI-Assistent sie als Kontext bei seinen Antworten berücksichtigt. Typische Inhalte sind Geschäftsregeln, Dokumentation, Konfigurationshinweise oder Datenbankbeschreibungen.

Dokument erstellen

Wissensdokumente werden über die Knowledge-API verwaltet. Jedes Dokument hat folgende Felder:

Feld Beschreibung
Titel Aussagekräftiger Name des Dokuments (max. 255 Zeichen)
Inhalt Der eigentliche Text — kann Markdown, Klartext oder strukturierte Daten enthalten
Beschreibung Optionale Kurzbeschreibung (max. 500 Zeichen)
Kategorie Einordnung: Custom, BusinessRules, Documentation, Configuration, Database, Code oder API
Aktiv Nur aktive Dokumente werden dem Assistenten zur Verfügung gestellt
Priorität Höhere Werte = wichtigere Dokumente (werden zuerst geladen)
Tags Kommagetrennte Schlagwörter für die Filterung

Datei-Upload

Alternativ können Sie Dokumente als Dateien hochladen. Unterstützte Formate:

Dateityp Erweiterungen Auto-Kategorie
Text-Dateien .txt, .csv, .log Custom
Markdown .md Documentation
Konfiguration .json, .xml Configuration
Datenbank .sql Database
Code .cs, .js, .ts, .py Code
Webseiten .html, .htm Custom
Dateigröße Einzelne Dateien dürfen maximal 10 MB groß sein. Beim Mehrfach-Upload liegt die Gesamtgrenze bei 50 MB.

Cache und Aktualisierung

Wissensdokumente werden für 60 Minuten zwischengespeichert. Nach dem Erstellen, Ändern oder Löschen eines Dokuments wird der Cache automatisch ungültig. Falls der Assistent Änderungen nicht sofort berücksichtigt, können Sie den Cache manuell über den Endpoint /api/ai/aiknowledge/invalidate-cache leeren.

5

Vector Store und semantische Suche

Der KI-Assistent unterstützt zwei Modi für die Wissensbereitstellung:

Modus Beschreibung Vorteil Nachteil
Vector Store Semantische Suche über einen OpenAI Vector Store — nur relevante Informationen werden pro Anfrage geladen Ca. 85 % weniger Token-Verbrauch, schnellere Antworten Zusätzliche OpenAI-Kosten für Vector Store
Textbasiert Vollständiger Kontext wird bei jeder Anfrage mitgesendet Kein Vector Store nötig, einfache Einrichtung Hoher Token-Verbrauch pro Anfrage, langsamer

Was wird im Vector Store synchronisiert?

Der Vector Store enthält ausschließlich dynamische Daten aus Ihrer UDM-Konfiguration:

  • Datenobjekte (Entities) mit allen Datenfeldern (Properties)
  • Subsysteme — Name, Beschreibung, Datenbanktyp
  • Datenquellen (Datasources) — Felder, Joins, Filter
  • Ansichtselemente (ViewElements) — Typ, Konfiguration
  • Dialoge (UIDialogs) — Felder, Layout
  • Aktionen (Actions/Jobs) — Typ, Zuordnung
  • Anwendungen (Apps) — Menüstruktur
  • Beziehungen (Relations) — FK-Verknüpfungen
  • Wissensdokumente — Ihre manuell hinterlegten Texte
  • Physische Datenbankstruktur — Tabellen, Spalten, Fremdschlüssel

Automatische Synchronisation

Änderungen an der UDM-Konfiguration (z. B. neues Datenobjekt, geänderte Datenquelle) werden automatisch in den Vector Store übernommen. Ein manueller Sync ist nur erforderlich, wenn der Vector Store erstmals eingerichtet oder die Schema-Version erhöht wird — in beiden Fällen wird ein vollständiger Rebuild automatisch beim Serverstart ausgelöst.

Status-Anzeige Während der Synchronisation zeigt der Chat ein Banner: „VectorStore wird aufgebaut… (X Dateien synchronisiert)“. Im textbasierten Fallback-Modus erscheint: „Textbasierter Modus“.
6

emit_-Funktionen — Was der Assistent erstellen kann

Der KI-Assistent nutzt spezialisierte emit_-Funktionen (sogenannte „Tools“), um Konfigurationen in UDM anzulegen. Jedes Tool hat einen festen Zweck und wird vom Assistenten automatisch gewählt.

Datenobjekte und Felder

Tool Beschreibung Typische Eingabe
emit_entity Neues Datenobjekt mit Feldern erstellen „Erstelle eine Tabelle für Kunden“
emit_property Felder zu bestehendem Datenobjekt hinzufügen „Füge ein Feld Telefon hinzu“
emit_property_modify Feld-Einstellungen ändern (Combobox, Tooltip usw.) „Mache Status zu einer Auswahlliste“
emit_add_field Feld erstellen und automatisch in alle Datenquellen, Dialoge und Ansichtselemente propagieren „Füge Email überall hinzu“
emit_lookup_from_field Aus einem Textfeld eine eigene Lookup-Tabelle mit Combobox erstellen „Mache Abteilung zu einer eigenen Tabelle“

Datenquellen

Tool Beschreibung Typische Eingabe
emit_datasource Neue Datenquelle für ein Datenobjekt erstellen „Erstelle eine Datenquelle für Kunden“
emit_datasource_modify Bestehende Datenquelle erweitern (neue Felder, Joins) „Füge das neue Feld zur Datenquelle hinzu“
emit_external_db Externe Datenbank anbinden (PostgreSQL, MySQL, SQL Server) „Verbinde eine PostgreSQL-Datenbank“

UI-Elemente

Tool Beschreibung Typische Eingabe
emit_ui_dialog Bearbeitungsdialog für ein Datenobjekt erstellen „Erstelle einen Bearbeitungsdialog“
emit_view_element Ansichtselement erstellen (Grid, Liste, Kanban usw.) „Erstelle ein Grid für die Kundenliste“
emit_dialog_view_element Ansichtselement in einen Dialog einbetten „Zeige Bestellungen im Kundendialog“
emit_chart Diagramm erstellen mit Multi-Series-Support (Balken, Linie, Kreis, Donut usw. — auch kombiniert) „Erstelle ein Balkendiagramm mit Umsatz und einer Linie für die Marge“
emit_scheduler Kalender-Ansichtselement erstellen „Erstelle einen Terminkalender“

Aktionen und Organisation

Tool Beschreibung Typische Eingabe
emit_action Zusätzliche Aktion (Button) hinzufügen „Füge einen Export-Button hinzu“
emit_open_dialog_action Aktion zum Öffnen eines Dialogs erstellen „Füge Details anzeigen als Zeilenaktion hinzu“
emit_sample_data Testdaten für eine Tabelle generieren „Erstelle 10 Testdatensätze“
emit_sample_data_batch Zusammenhängende Testdaten für mehrere Tabellen „Erstelle Testdaten für alle Tabellen“
emit_delete_data Datensätze löschen (per PK oder Filter, mit DryRun-Sicherung) „Lösche alle archivierten Aufgaben“
emit_menu_group App mit Menügruppen erstellen und Elemente zuordnen „Ordne die Elemente in Menügruppen“
emit_reassign_elements Elemente einer anderen App zuordnen „Verschiebe die Ansicht in eine andere App“
emit_report_template Berichtsvorlage erstellen (Platzhalter) „Erstelle eine Berichtsvorlage für Umsätze“
Automatische Erstellungsreihenfolge Wenn der Assistent mehrere Elemente gleichzeitig erstellt (z. B. Datenobjekt + Datenquelle + Dialog + Grid), sortiert der Server die Aufrufe automatisch nach Abhängigkeiten. Sie müssen sich keine Gedanken über die Reihenfolge machen.
7

Praxisbeispiele

Praxisbeispiel
Komplette App in einem Schritt erstellen

Eingabe: „Erstelle eine Zeiterfassungs-App mit Projekten, Mitarbeitern und Buchungen. Jede Buchung hat ein Start- und Enddatum, ein Projekt und einen Mitarbeiter. Erstelle alles komplett mit Datenquellen, Dialogen und Grids.“

Ergebnis: Der Assistent erstellt alle Datenobjekte, Datenquellen, Dialoge, Ansichtselemente und eine App mit Menüstruktur als Batch — ca. 15–20 Tool-Aufrufe in einem Durchgang.

Praxisbeispiel
Bestehendes Datenobjekt erweitern

Eingabe: „Füge der Tabelle Customer ein Feld LoyaltyPoints (Treuepunkte, Integer) hinzu. Es soll überall sichtbar sein.“

Ergebnis: Der Assistent nutzt emit_add_field und ergänzt das Feld automatisch in allen zugehörigen Datenquellen, Dialogen und Ansichtselementen.

Praxisbeispiel
Testdaten für mehrere Tabellen generieren

Eingabe: „Erstelle 20 Testdatensätze für Kunde, Bestellung und Bestellposition.“

Ergebnis: Der Assistent nutzt emit_sample_data_batch und generiert Fremdschlüssel-konsistente Daten — Bestellungen referenzieren gültige Kunden, Bestellpositionen gültige Bestellungen.

Praxisbeispiel
Veraltete Datensätze löschen

Eingabe: „Lösche alle Aufgaben mit Status Archiviert, die vor dem 01.01.2025 erstellt wurden.“

Ergebnis: Der Assistent zeigt zunächst eine Vorschau der betroffenen Datensätze (DryRun). Erst nach Ihrer Bestätigung werden die Daten gelöscht. Maximal 50 Datensätze pro Aufruf — bei größeren Mengen empfiehlt der Assistent die Löschung in Schritten.

Praxisbeispiel
Diagramm mit kombinierter Darstellung erstellen

Eingabe: „Erstelle ein Diagramm mit Umsatz als Balken und Gewinnmarge als Linie auf der rechten Achse, gruppiert nach Monat.“

Ergebnis: Der Assistent nutzt emit_chart mit einer MainSeries (Balken/Umsatz) und einer AdditionalSeries (Linie/Marge auf der sekundären Y-Achse). Aggregation, Datumsgruppierung und Achsenbeschriftungen werden automatisch konfiguriert.

Praxisbeispiel
Wissensdokument für Geschäftsregeln

Eingabe: Erstellen Sie ein Wissensdokument mit Ihren Geschäftsregeln (z. B. „Projekte müssen einen Projektleiter haben“), damit der Assistent diese bei der Konfiguration berücksichtigt.

Ergebnis: Der Assistent bezieht die Regeln in seine Vorschläge ein — z. B. erstellt er automatisch ein Pflichtfeld „Projektleiter“ bei neuen Projekt-Entities.

8

Tipps und Warnungen

Effizient arbeiten

  1. Freie Hand geben Sagen Sie „Definiere die Details selbst“ — der Assistent schlägt eine sinnvolle Struktur vor, die Sie vor der Ausführung anpassen können.
  2. Auto-Modus nutzen Aktivieren Sie den Auto-Modus in der Optionsleiste, wenn viele Tool-Aufrufe nacheinander ausgeführt werden sollen. Im manuellen Modus müssen Sie jeden einzelnen Tool-Aufruf bestätigen.
  3. Kompakt-Modus für Erfahrene Wechseln Sie in den Kompakt-Modus, wenn Sie die UDM-Konzepte bereits kennen. Der Assistent antwortet dann stichpunktartig statt mit ausführlichen Erklärungen.
  4. Technische Namen verwenden Verwenden Sie die exakten technischen Namen (PascalCase) von Datenobjekten und Feldern, damit der Assistent sie zuverlässig findet: „Füge ein Feld zur Entity CustomerOrder hinzu“.
  5. Wissensdokumente pflegen Je mehr Kontext der Assistent hat, desto bessere Vorschläge macht er. Hinterlegen Sie Ihre Geschäftsregeln, Namenskonventionen und spezielle Anforderungen als Wissensdokumente.
Einschränkungen des Assistenten
  • Metadaten-Elemente (Datenobjekte, Datenquellen, Dialoge) können nicht gelöscht werden — Löschen muss manuell erfolgen
  • Geschäftsdaten können über emit_delete_data gelöscht werden — mit Vorschau, Bestätigung und maximal 50 Datensätzen pro Aufruf
  • Physische Schema-Änderungen (Datentyp ändern, Feld umbenennen) sind nicht möglich
  • Dynamischer Code (FormCode, EntityCode) kann nicht geschrieben werden
  • Passwörter und Zugangsdaten werden aus Sicherheitsgründen nicht abgefragt
Kosten beachten Jede Nachricht an den KI-Assistenten verursacht Kosten bei OpenAI. Besonders token-intensive Vorgänge sind: Testdaten-Generierung für viele Datensätze, Anfragen im textbasierten Modus (ohne Vector Store) und sehr lange Konversationen. Aktivieren Sie den Vector Store, um den Token-Verbrauch deutlich zu reduzieren.
9

Häufige Fragen (FAQ)

Allgemein

Frage Antwort
Welches OpenAI-Modell wird verwendet? Das Modell wird in der Konfiguration festgelegt (z. B. gpt-4o). Für Testdaten wird ein kostengünstigeres Modell verwendet (gpt-4o-mini)
Wie lange werden Konversationen gespeichert? 7 Tage. Danach werden sie automatisch gelöscht. Sie können jederzeit eine neue Konversation starten
Kann der Assistent auf die Daten in meiner Datenbank zugreifen? Der Assistent kennt die Struktur (Tabellen, Felder, Beziehungen), aber nicht die eigentlichen Nutzdaten. Ausnahme: Bei der Testdaten-Generierung liest er Fremdschlüssel-Werte aus Zieltabellen
Werden meine Daten an OpenAI gesendet? Ja, die Nachrichten und der Kontext (Metadaten über Ihre UDM-Konfiguration) werden an die OpenAI API gesendet. Keine Nutzdaten aus Ihren Tabellen werden übertragen — nur Strukturinformationen
Was bedeutet die Anzeige „Vector“ bzw. „Text“? Vector = semantische Suche aktiv (empfohlen, ca. 85 % weniger Tokens). Text = textbasierter Fallback (vollständiger Kontext, höherer Token-Verbrauch)

Fehlerbehebung

Problem Lösung
„KI-Assistent nicht verfügbar“ API-Key nicht konfiguriert oder Enabled auf false — prüfen Sie die appsettings.json
„API-Schlüssel ungültig“ Prüfen Sie, ob der API-Key korrekt ist und ob Ihr OpenAI-Konto aktiv ist
„OpenAI-Guthaben aufgebraucht“ Laden Sie Ihr OpenAI-Konto auf. Prüfen Sie Ihren Verbrauch unter platform.openai.com
„VectorStore wird aufgebaut“ Der Vector Store wird gerade synchronisiert. Warten Sie einige Minuten — der Status aktualisiert sich automatisch
Tool-Aufruf schlägt fehl Lesen Sie die Fehlermeldung. Der Assistent schlägt in der Regel Lösungen vor (z. B. fehlende Entity zuerst erstellen)
Assistent erkennt bestehendes Element nicht Verwenden Sie den exakten technischen Namen in PascalCase (z. B. CustomerOrder, nicht „Kundenbestellung“)
Antwort dauert sehr lange Im textbasierten Modus ist der Token-Verbrauch höher und die Antwortzeit länger. Aktivieren Sie den Vector Store für schnellere Antworten
Batch wird bei einem Fehler abgebrochen Bei einem Fehler in einem Tool-Aufruf stoppt der gesamte Batch. Beheben Sie den Fehler und starten Sie die Erstellung erneut
„Rate-Limit erreicht“ Zu viele Anfragen in kurzer Zeit. Warten Sie einige Sekunden und versuchen Sie es erneut
Wissensdokumente werden nicht berücksichtigt Prüfen Sie, ob das Dokument auf „Aktiv“ gesetzt ist. Falls nötig, leeren Sie den Cache manuell über den Invalidate-Endpoint

Workflow-Fragen

Frage Antwort
Kann ich den Assistenten auch für Fragen nutzen, ohne etwas zu erstellen? Ja. Der Assistent beantwortet auch Fragen über die bestehende Konfiguration, z. B. „Welche Felder hat die Entity Project?“ oder „Welche Datenquellen gibt es für Customer?“
Muss ich die Erstellungsreihenfolge beachten? Nein. Der Server sortiert Batch-Aufrufe automatisch nach Abhängigkeiten (Datenobjekte vor Datenquellen, Dialoge vor Ansichtselementen usw.)
Kann ich im manuellen Modus einzelne Tools ablehnen? Ja. Im manuellen Modus (Auto aus) wird jeder Tool-Aufruf einzeln angezeigt. Sie können jeden Aufruf einzeln bestätigen oder ablehnen
Wie kann ich Änderungen rückgängig machen? Der Assistent hat keine Undo-Funktion. Erstellte Elemente müssen manuell über die Admin-Oberfläche gelöscht werden. Bei gelöschten Datensätzen werden die Daten im Änderungsprotokoll festgehalten, sofern dieses aktiv ist
10

BulkCreate & DynamicCode-Tool

Der KI-Assistent verfügt über ein DynamicCode-Tool, das komplexe Konfigurationen automatisch erstellt. Über die BulkCreate Fluent-API kann der Assistent in einem Schritt mehrere verknüpfte Elemente anlegen:

  • Datenobjekte mit Feldern und Beziehungen
  • Datenquellen mit Joins und Ausgabespalten
  • Ansichtselemente (Tabellen, Charts, KPI-Karten)
  • Dialoge mit Feldkonfiguration und Reitern
  • Subdialoge für Zuordnungen (1:n, m:n)
Beispiel: „Erstelle ein Datenobjekt Fahrzeug mit Kennzeichen, Typ, Baujahr und Fahrer (Verweis auf Mitarbeiter). Erstelle dazu eine Datenquelle, ein Grid-Ansichtselement und einen Erfassungsdialog.“ — Der Assistent erstellt alle Elemente automatisch und verknüpft sie.