diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNodeConfiguration.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNodeConfiguration.java index 10bb24199e..48392aa76e 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNodeConfiguration.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNodeConfiguration.java @@ -34,12 +34,11 @@ public class TbAiNodeConfiguration implements NodeConfiguration invalidSystemPrompts() { - String tooLongString = "a".repeat(10_001); + String tooLongString = "a".repeat(500_001); return Stream.of( Arguments.of(""), - Arguments.of(" "), Arguments.of(tooLongString) ); } @@ -213,12 +212,17 @@ class TbAiNodeTest { } static Stream validSystemPrompts() { - String longString = "a".repeat(10_000); + String longString = "a".repeat(500_000); return Stream.of( Arguments.of((String) null), Arguments.of("a"), Arguments.of("Test system prompt"), - Arguments.of(longString) + Arguments.of(longString), + Arguments.of(""" + first sentence + + second sentence + """) ); } @@ -239,7 +243,7 @@ class TbAiNodeTest { } static Stream invalidUserPrompts() { - String tooLongString = "a".repeat(10_001); + String tooLongString = "a".repeat(500_001); return Stream.of( Arguments.of((String) null), Arguments.of(""), @@ -260,11 +264,16 @@ class TbAiNodeTest { } static Stream validUserPrompts() { - String longString = "a".repeat(10_000); + String longString = "a".repeat(500_000); return Stream.of( Arguments.of("a"), Arguments.of("Test user prompt"), - Arguments.of(longString) + Arguments.of(longString), + Arguments.of(""" + first sentence + + second sentence + """) ); } diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/ai-config.component.ts b/ui-ngx/src/app/modules/home/components/rule-node/external/ai-config.component.ts index 1ef8ebca72..26d2ed009e 100644 --- a/ui-ngx/src/app/modules/home/components/rule-node/external/ai-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/rule-node/external/ai-config.component.ts @@ -51,8 +51,8 @@ export class AiConfigComponent extends RuleNodeConfigurationComponent { protected onConfigurationSet(configuration: RuleNodeConfiguration) { this.aiConfigForm = this.fb.group({ modelId: [configuration?.modelId ?? null, [Validators.required]], - systemPrompt: [configuration?.systemPrompt ?? '', [Validators.maxLength(10000), Validators.pattern(/.*\S.*/)]], - userPrompt: [configuration?.userPrompt ?? '', [Validators.required, Validators.maxLength(10000), Validators.pattern(/.*\S.*/)]], + systemPrompt: [configuration?.systemPrompt ?? '', [Validators.maxLength(500_000), Validators.pattern(/.*\S.*/)]], + userPrompt: [configuration?.userPrompt ?? '', [Validators.required, Validators.maxLength(500_000), Validators.pattern(/.*\S.*/)]], responseFormat: this.fb.group({ type: [configuration?.responseFormat?.type ?? ResponseFormat.JSON, []], schema: [configuration?.responseFormat?.schema ?? null, [jsonRequired]], diff --git a/ui-ngx/src/assets/locale/locale.constant-da_DK.json b/ui-ngx/src/assets/locale/locale.constant-da_DK.json index a750e657a4..c77b87f3e0 100644 --- a/ui-ngx/src/assets/locale/locale.constant-da_DK.json +++ b/ui-ngx/src/assets/locale/locale.constant-da_DK.json @@ -5436,11 +5436,11 @@ "prompt-settings": "Promptindstillinger", "prompt-settings-hint": "Den valgfrie systemprompt angiver AI'ens generelle rolle og begrænsninger, mens brugerprompten definerer den specifikke opgave. Begge felter understøtter også skabelonfunktionalitet.", "system-prompt": "Systemprompt", - "system-prompt-max-length": "Systemprompt må højst være 10000 tegn.", + "system-prompt-max-length": "Systemprompt må højst være 500000 tegn.", "system-prompt-blank": "Systemprompt må ikke være tom.", "user-prompt": "Brugerprompt", "user-prompt-required": "Brugerprompt er påkrævet.", - "user-prompt-max-length": "Brugerprompt må højst være 10000 tegn.", + "user-prompt-max-length": "Brugerprompt må højst være 500000 tegn.", "user-prompt-blank": "Brugerprompt må ikke være tom.", "response-format": "Svarformat", "response-text": "Tekst", @@ -9522,4 +9522,4 @@ "language": { "language": "Sprog" } -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-de_DE.json b/ui-ngx/src/assets/locale/locale.constant-de_DE.json index 64ce0695d6..8df5966d60 100644 --- a/ui-ngx/src/assets/locale/locale.constant-de_DE.json +++ b/ui-ngx/src/assets/locale/locale.constant-de_DE.json @@ -5436,11 +5436,11 @@ "prompt-settings": "Prompt-Einstellungen", "prompt-settings-hint": "Der optionale System-Prompt definiert die allgemeine Rolle und Einschränkungen der KI, während der Benutzer-Prompt die spezifische Aufgabe beschreibt. Beide Felder unterstützen auch die Verwendung von Templates.", "system-prompt": "System-Prompt", - "system-prompt-max-length": "Der System-Prompt darf maximal 10.000 Zeichen lang sein.", + "system-prompt-max-length": "Der System-Prompt darf maximal 500.000 Zeichen lang sein.", "system-prompt-blank": "Der System-Prompt darf nicht leer sein.", "user-prompt": "Benutzer-Prompt", "user-prompt-required": "Benutzer-Prompt ist erforderlich.", - "user-prompt-max-length": "Der Benutzer-Prompt darf maximal 10.000 Zeichen lang sein.", + "user-prompt-max-length": "Der Benutzer-Prompt darf maximal 500.000 Zeichen lang sein.", "user-prompt-blank": "Der Benutzer-Prompt darf nicht leer sein.", "response-format": "Antwortformat", "response-text": "Text", @@ -9522,4 +9522,4 @@ "language": { "language": "Sprache" } -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-el_GR.json b/ui-ngx/src/assets/locale/locale.constant-el_GR.json index 4974a25ac5..4af644ab8d 100644 --- a/ui-ngx/src/assets/locale/locale.constant-el_GR.json +++ b/ui-ngx/src/assets/locale/locale.constant-el_GR.json @@ -5436,11 +5436,11 @@ "prompt-settings": "Ρυθμίσεις prompt", "prompt-settings-hint": "Το προαιρετικό system prompt ορίζει τον γενικό ρόλο και τους περιορισμούς του AI, ενώ το user prompt καθορίζει το συγκεκριμένο έργο προς εκτέλεση. Και τα δύο πεδία υποστηρίζουν χρήση προτύπων.", "system-prompt": "System prompt", - "system-prompt-max-length": "Το system prompt πρέπει να είναι έως 10000 χαρακτήρες.", + "system-prompt-max-length": "Το system prompt πρέπει να είναι έως 500000 χαρακτήρες.", "system-prompt-blank": "Το system prompt δεν πρέπει να είναι κενό.", "user-prompt": "User prompt", "user-prompt-required": "Απαιτείται user prompt.", - "user-prompt-max-length": "Το user prompt πρέπει να είναι έως 10000 χαρακτήρες.", + "user-prompt-max-length": "Το user prompt πρέπει να είναι έως 500000 χαρακτήρες.", "user-prompt-blank": "Το user prompt δεν πρέπει να είναι κενό.", "response-format": "Μορφή απόκρισης", "response-text": "Κείμενο", @@ -9522,4 +9522,4 @@ "language": { "language": "Γλώσσα" } -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index b06137eba6..80328181f6 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5446,11 +5446,11 @@ "prompt-settings": "Prompt settings", "prompt-settings-hint": "The optional system prompt sets the AI's general role and constraints, while the user prompt defines the specific task to perform. Both fields also support templatization.", "system-prompt": "System prompt", - "system-prompt-max-length": "System prompt must be 10000 characters or less.", + "system-prompt-max-length": "System prompt must be 500000 characters or less.", "system-prompt-blank": "System prompt must not be blank.", "user-prompt": "User prompt", "user-prompt-required": "User prompt is required.", - "user-prompt-max-length": "User prompt must be 10000 characters or less.", + "user-prompt-max-length": "User prompt must be 500000 characters or less.", "user-prompt-blank": "User prompt must not be blank.", "response-format": "Response format", "response-text": "Text", diff --git a/ui-ngx/src/assets/locale/locale.constant-es_ES.json b/ui-ngx/src/assets/locale/locale.constant-es_ES.json index 6ff64e0879..3abb65bec6 100644 --- a/ui-ngx/src/assets/locale/locale.constant-es_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-es_ES.json @@ -5436,11 +5436,11 @@ "prompt-settings": "Configuración del prompt", "prompt-settings-hint": "El prompt del sistema (opcional) define el rol general y las restricciones de la IA, mientras que el prompt del usuario define la tarea específica a realizar. Ambos campos admiten plantillas.", "system-prompt": "Prompt del sistema", - "system-prompt-max-length": "El prompt del sistema debe tener 10.000 caracteres o menos.", + "system-prompt-max-length": "El prompt del sistema debe tener 500.000 caracteres o menos.", "system-prompt-blank": "El prompt del sistema no debe estar vacío.", "user-prompt": "Prompt del usuario", "user-prompt-required": "Se requiere el prompt del usuario.", - "user-prompt-max-length": "El prompt del usuario debe tener 10.000 caracteres o menos.", + "user-prompt-max-length": "El prompt del usuario debe tener 500.000 caracteres o menos.", "user-prompt-blank": "El prompt del usuario no debe estar vacío.", "response-format": "Formato de respuesta", "response-text": "Texto", @@ -9522,4 +9522,4 @@ "language": { "language": "Idioma" } -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json index 46350046de..e278f5f8a9 100644 --- a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json +++ b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json @@ -5436,11 +5436,11 @@ "prompt-settings": "Paramètres de prompt", "prompt-settings-hint": "Le prompt système optionnel définit le rôle général et les contraintes de l'IA, tandis que le prompt utilisateur précise la tâche à exécuter. Les deux champs prennent en charge la modélisation par modèle (templatization).", "system-prompt": "Prompt système", - "system-prompt-max-length": "Le prompt système doit comporter 10 000 caractères ou moins.", + "system-prompt-max-length": "Le prompt système doit comporter 500 000 caractères ou moins.", "system-prompt-blank": "Le prompt système ne doit pas être vide.", "user-prompt": "Prompt utilisateur", "user-prompt-required": "Le prompt utilisateur est requis.", - "user-prompt-max-length": "Le prompt utilisateur doit comporter 10 000 caractères ou moins.", + "user-prompt-max-length": "Le prompt utilisateur doit comporter 500 000 caractères ou moins.", "user-prompt-blank": "Le prompt utilisateur ne doit pas être vide.", "response-format": "Format de réponse", "response-text": "Texte", @@ -9522,4 +9522,4 @@ "language": { "language": "Langue" } -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json index bb69f4f49c..74bd56e2f5 100644 --- a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json +++ b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json @@ -5436,11 +5436,11 @@ "prompt-settings": "İstem ayarları", "prompt-settings-hint": "İsteğe bağlı sistem istemi, yapay zekanın genel rolünü ve kısıtlamalarını belirlerken, kullanıcı istemi gerçekleştirilmesi gereken belirli görevi tanımlar. Her iki alan da şablonlaştırmayı destekler.", "system-prompt": "Sistem istemi", - "system-prompt-max-length": "Sistem istemi en fazla 10000 karakter olmalıdır.", + "system-prompt-max-length": "Sistem istemi en fazla 500000 karakter olmalıdır.", "system-prompt-blank": "Sistem istemi boş olmamalıdır.", "user-prompt": "Kullanıcı istemi", "user-prompt-required": "Kullanıcı istemi gereklidir.", - "user-prompt-max-length": "Kullanıcı istemi en fazla 10000 karakter olmalıdır.", + "user-prompt-max-length": "Kullanıcı istemi en fazla 500000 karakter olmalıdır.", "user-prompt-blank": "Kullanıcı istemi boş olmamalıdır.", "response-format": "Yanıt formatı", "response-text": "Metin", @@ -9522,4 +9522,4 @@ "language": { "language": "Dil" } -} \ No newline at end of file +}