AI request node: fix prompts validation
This commit is contained in:
parent
052b5cddb8
commit
a1cebcc54c
@ -34,12 +34,11 @@ public class TbAiNodeConfiguration implements NodeConfiguration<TbAiNodeConfigur
|
||||
@NotNull
|
||||
private AiModelId modelId;
|
||||
|
||||
@Pattern(regexp = ".*\\S.*", message = "must not be blank")
|
||||
@Length(min = 1, max = 10000)
|
||||
@Length(min = 1, max = 500_000)
|
||||
private String systemPrompt;
|
||||
|
||||
@NotBlank
|
||||
@Length(min = 1, max = 10000)
|
||||
@Length(min = 1, max = 500_000)
|
||||
private String userPrompt;
|
||||
|
||||
@NotNull
|
||||
|
||||
@ -193,9 +193,8 @@ class TbAiNodeTest {
|
||||
}
|
||||
|
||||
static Stream<Arguments> 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<Arguments> 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<Arguments> 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<Arguments> 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
|
||||
""")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -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]],
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "Κείμενο",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user