diff --git a/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.html b/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.html
index d5790c69f..01e6d4a67 100644
--- a/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.html
+++ b/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.html
@@ -78,6 +78,24 @@
>
+
+
+ {{ 'add-edit-entity.form.ai-creation-enabled' | translate }}
+
+
+
+
+
+
+
+
{{ 'add-edit-entity.form.has-dictionary' | translate }}
diff --git a/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.ts b/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.ts
index a45e20c63..545d63f57 100644
--- a/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.ts
+++ b/apps/red-ui/src/app/modules/shared/components/add-edit-entity/add-edit-entity.component.ts
@@ -9,7 +9,7 @@ import { MatSelect } from '@angular/material/select';
import { MatSlideToggle } from '@angular/material/slide-toggle';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
-import { BaseFormComponent, getConfig, HasScrollbarDirective, LoadingService, Toaster } from '@iqser/common-ui';
+import { BaseFormComponent, getConfig, isIqserDevMode, HasScrollbarDirective, LoadingService, Toaster } from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { Dictionary, IDictionary } from '@red/domain';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
@@ -18,6 +18,7 @@ import { toSnakeCase } from '@utils/functions';
import { ColorPickerModule } from 'ngx-color-picker';
import { Observable } from 'rxjs';
import { map, startWith } from 'rxjs/operators';
+import { log } from '@common-ui/utils';
const REDACTION_FIELDS = ['defaultReason'];
@@ -62,6 +63,7 @@ export class AddEditEntityComponent extends BaseFormComponent implements OnInit
colors: Color[];
readonly isDocumine = getConfig().IS_DOCUMINE;
+ readonly isIqserDevMode = isIqserDevMode();
constructor(
private readonly _dictionariesMapService: DictionariesMapService,
@@ -158,6 +160,8 @@ export class AddEditEntityComponent extends BaseFormComponent implements OnInit
skippedHexColor: [this.entity?.skippedHexColor, [Validators.required, Validators.minLength(7)]],
type: [this.entity?.type],
description: [this.entity?.description],
+ aiCreationEnabled: [this.entity?.aiCreationEnabled],
+ aiDescription: [this.entity?.aiDescription],
rank: [{ value: this.entity?.rank, disabled: this.#isSystemManaged }, Validators.required],
hint: [{ value: !!this.entity?.hint, disabled: this.#isSystemManaged }],
hasDictionary: [
@@ -250,6 +254,8 @@ export class AddEditEntityComponent extends BaseFormComponent implements OnInit
dossierTemplateId: this.dossierTemplateId,
type: this.form.get('type').value,
description: this.form.get('description').value,
+ aiCreationEnabled: this.form.get('aiCreationEnabled').value,
+ aiDescription: this.form.get('aiDescription').value,
hint: this.#isHint,
rank: this.form.get('rank').value,
caseInsensitive: !this.form.get('caseSensitive').value,
diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json
index f9a106942..000d06045 100644
--- a/apps/red-ui/src/assets/i18n/redact/de.json
+++ b/apps/red-ui/src/assets/i18n/redact/de.json
@@ -135,6 +135,9 @@
},
"add-edit-entity": {
"form": {
+ "ai-creation-enabled": "AI Erzeugung aktivieren",
+ "ai-description": "AI Beschreibung",
+ "ai-description-placeholder": "AI Beschreibung eingeben",
"case-sensitive": "Groß-/Kleinschreibung beachten",
"color": "Farbe {type, select, redaction{Schwärzung} hint{Hinweis} recommendation{Empfehlung} skipped{Ingorierte Schwärzung} ignored{Ignorierter Hinweis} other{}}",
"color-placeholder": "#",
diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json
index 274d34e4a..2bb0e6013 100644
--- a/apps/red-ui/src/assets/i18n/redact/en.json
+++ b/apps/red-ui/src/assets/i18n/redact/en.json
@@ -135,6 +135,9 @@
},
"add-edit-entity": {
"form": {
+ "ai-creation-enabled": "Enable AI creation",
+ "ai-description": "AI Description",
+ "ai-description-placeholder": "Enter AI description",
"case-sensitive": "Case-sensitive",
"color": "{type, select, redaction{Redaction} hint{Hint} recommendation{Recommendation} skipped{Skipped redaction} ignored{Ignored hint} other{}} color",
"color-placeholder": "#",
diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json
index 5dd0fb957..228da81eb 100644
--- a/apps/red-ui/src/assets/i18n/scm/de.json
+++ b/apps/red-ui/src/assets/i18n/scm/de.json
@@ -135,6 +135,9 @@
},
"add-edit-entity": {
"form": {
+ "ai-creation-enabled": "AI Erzeugung aktivieren",
+ "ai-description": "AI Beschreibung",
+ "ai-description-placeholder": "AI Beschreibung eingeben",
"case-sensitive": "Groß-/Kleinschreibung beachten",
"color": "Farbe {type, select, redaction{Annotation} hint{Hinweis} recommendation{Empfehlung} skipped{Übersprungene Annotation} ignored{Ignorierter Hinweis} other{}}",
"color-placeholder": "#",
diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json
index ad40d7fbc..f751bf400 100644
--- a/apps/red-ui/src/assets/i18n/scm/en.json
+++ b/apps/red-ui/src/assets/i18n/scm/en.json
@@ -135,6 +135,9 @@
},
"add-edit-entity": {
"form": {
+ "ai-creation-enabled": "Enable AI creation",
+ "ai-description": "AI Description",
+ "ai-description-placeholder": "Enter AI description",
"case-sensitive": "Case-sensitive",
"color": "{type, select, redaction{Annotation} hint{Hint} recommendation{Recommendation} skipped{Skipped annotation} ignored{Ignored hint} other{}} Color",
"color-placeholder": "#",
diff --git a/libs/red-domain/src/lib/dictionaries/dictionary.model.ts b/libs/red-domain/src/lib/dictionaries/dictionary.model.ts
index 4c33e7840..86e40c4e3 100644
--- a/libs/red-domain/src/lib/dictionaries/dictionary.model.ts
+++ b/libs/red-domain/src/lib/dictionaries/dictionary.model.ts
@@ -7,6 +7,8 @@ export class Dictionary extends Entity implements IDictionary {
readonly addToDictionaryAction: boolean;
readonly caseInsensitive: boolean;
readonly description: string;
+ readonly aiCreationEnabled: boolean;
+ readonly aiDescription: string;
readonly dossierTemplateId?: string;
readonly hexColor?: string;
readonly recommendationHexColor?: string;
@@ -33,6 +35,8 @@ export class Dictionary extends Entity implements IDictionary {
this.addToDictionaryAction = !!entity.addToDictionaryAction;
this.caseInsensitive = !!entity.caseInsensitive;
this.description = entity.description ?? '';
+ this.aiCreationEnabled = !!entity.aiCreationEnabled;
+ this.aiDescription = entity.aiDescription ?? '';
this.dossierTemplateId = entity.dossierTemplateId;
this.entries = entity.entries ?? [];
this.falsePositiveEntries = entity.falsePositiveEntries ?? [];
diff --git a/libs/red-domain/src/lib/dictionaries/dictionary.ts b/libs/red-domain/src/lib/dictionaries/dictionary.ts
index d146393bf..6f01105fc 100644
--- a/libs/red-domain/src/lib/dictionaries/dictionary.ts
+++ b/libs/red-domain/src/lib/dictionaries/dictionary.ts
@@ -16,6 +16,14 @@ export interface IDictionary {
* The description of the dictionary type
*/
readonly description?: string;
+ /**
+ * True if the entries in this type should also be created via AI, default is false.
+ */
+ readonly aiCreationEnabled?: boolean;
+ /**
+ * The AI description of the dictionary type
+ */
+ readonly aiDescription?: string;
/**
* The DossierTemplate Id for this type
*/