Ü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
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) |
appsettings.json im Quellcode — verwenden Sie stattdessen Umgebungsvariablen.
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) |
DS_Vorgang als Grid an.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 |
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.
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.
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“ |
Praxisbeispiele
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.
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.
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.
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.
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.
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.
Tipps und Warnungen
Effizient arbeiten
- 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.
- 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.
- 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.
- 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“.
- 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.
- Metadaten-Elemente (Datenobjekte, Datenquellen, Dialoge) können nicht gelöscht werden — Löschen muss manuell erfolgen
- Geschäftsdaten können über
emit_delete_datagelö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
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 |