|
|
@ -38,35 +38,39 @@ |
|
|
<div class="tb-form-panel stroked no-padding no-gap"> |
|
|
<div class="tb-form-panel stroked no-padding no-gap"> |
|
|
<mat-expansion-panel class="tb-settings" expanded> |
|
|
<mat-expansion-panel class="tb-settings" expanded> |
|
|
<mat-expansion-panel-header style="padding: 16px"> |
|
|
<mat-expansion-panel-header style="padding: 16px"> |
|
|
<mat-panel-title tb-hint-tooltip-icon="{{ 'rule-node-config.ai.prompt-settings-hint' | translate }}"> |
|
|
<mat-panel-title> |
|
|
{{'rule-node-config.ai.prompt-settings' | translate}} |
|
|
{{'rule-node-config.ai.prompt-settings' | translate}} |
|
|
</mat-panel-title> |
|
|
</mat-panel-title> |
|
|
</mat-expansion-panel-header> |
|
|
</mat-expansion-panel-header> |
|
|
<div class="tb-form-panel no-border no-padding-bottom no-gap" style="margin-top: 0"> |
|
|
<div class="tb-form-panel no-border no-padding-top" style="margin-top: 0"> |
|
|
<mat-form-field class="flex" appearance="outline"> |
|
|
<tb-example-hint |
|
|
<mat-label translate>rule-node-config.ai.system-prompt</mat-label> |
|
|
[hintText]="'rule-node-config.ai.prompt-settings-hint'" |
|
|
<textarea matInput rows="2" formControlName="systemPrompt"></textarea> |
|
|
[popupHelpLink]="'rulenode/ai_node_prompt_settings'"> |
|
|
<mat-error *ngIf="aiConfigForm.get('systemPrompt').hasError('maxlength')"> |
|
|
</tb-example-hint> |
|
|
{{ 'rule-node-config.ai.system-prompt-max-length' | translate }} |
|
|
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> |
|
|
</mat-error> |
|
|
<mat-label translate>rule-node-config.ai.system-prompt</mat-label> |
|
|
<mat-error *ngIf="aiConfigForm.get('systemPrompt').hasError('pattern')"> |
|
|
<textarea matInput rows="4" formControlName="systemPrompt"></textarea> |
|
|
{{ 'rule-node-config.ai.system-prompt-blank' | translate }} |
|
|
<mat-error *ngIf="aiConfigForm.get('systemPrompt').hasError('maxlength')"> |
|
|
</mat-error> |
|
|
{{ 'rule-node-config.ai.system-prompt-max-length' | translate }} |
|
|
</mat-form-field> |
|
|
</mat-error> |
|
|
<mat-form-field class="flex" appearance="outline"> |
|
|
<mat-error *ngIf="aiConfigForm.get('systemPrompt').hasError('pattern')"> |
|
|
<mat-label translate>rule-node-config.ai.user-prompt</mat-label> |
|
|
{{ 'rule-node-config.ai.system-prompt-blank' | translate }} |
|
|
<textarea required matInput rows="2" formControlName="userPrompt"></textarea> |
|
|
</mat-error> |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('required')"> |
|
|
</mat-form-field> |
|
|
{{ 'rule-node-config.ai.user-prompt-required' | translate }} |
|
|
<mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic"> |
|
|
</mat-error> |
|
|
<mat-label translate>rule-node-config.ai.user-prompt</mat-label> |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('maxlength')"> |
|
|
<textarea required matInput rows="4" formControlName="userPrompt"></textarea> |
|
|
{{ 'rule-node-config.ai.user-prompt-max-length' | translate }} |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('required')"> |
|
|
</mat-error> |
|
|
{{ 'rule-node-config.ai.user-prompt-required' | translate }} |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('pattern')"> |
|
|
</mat-error> |
|
|
{{ 'rule-node-config.ai.user-prompt-blank' | translate }} |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('maxlength')"> |
|
|
</mat-error> |
|
|
{{ 'rule-node-config.ai.user-prompt-max-length' | translate }} |
|
|
</mat-form-field> |
|
|
</mat-error> |
|
|
</div> |
|
|
<mat-error *ngIf="aiConfigForm.get('userPrompt').hasError('pattern')"> |
|
|
|
|
|
{{ 'rule-node-config.ai.user-prompt-blank' | translate }} |
|
|
|
|
|
</mat-error> |
|
|
|
|
|
</mat-form-field> |
|
|
|
|
|
</div> |
|
|
</mat-expansion-panel> |
|
|
</mat-expansion-panel> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
@ -96,7 +100,7 @@ |
|
|
<mat-expansion-panel-header style="padding: 16px"> |
|
|
<mat-expansion-panel-header style="padding: 16px"> |
|
|
<mat-panel-title translate>rule-node-config.ai.advanced-settings</mat-panel-title> |
|
|
<mat-panel-title translate>rule-node-config.ai.advanced-settings</mat-panel-title> |
|
|
</mat-expansion-panel-header> |
|
|
</mat-expansion-panel-header> |
|
|
<div class="tb-form-panel no-border" style="margin-top: 0"> |
|
|
<div class="tb-form-panel no-border no-padding-top" style="margin-top: 0"> |
|
|
<div class="tb-form-row space-between flex-1 columns-xs"> |
|
|
<div class="tb-form-row space-between flex-1 columns-xs"> |
|
|
<div translate tb-hint-tooltip-icon="{{'rule-node-config.ai.timeout-hint' | translate}}">{{ 'rule-node-config.ai.timeout' | translate }}</div> |
|
|
<div translate tb-hint-tooltip-icon="{{'rule-node-config.ai.timeout-hint' | translate}}">{{ 'rule-node-config.ai.timeout' | translate }}</div> |
|
|
<div class="flex flex-row items-center justify-start gap-2"> |
|
|
<div class="flex flex-row items-center justify-start gap-2"> |
|
|
@ -112,6 +116,12 @@ |
|
|
</tb-time-unit-input> |
|
|
</tb-time-unit-input> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div tb-hint-tooltip-icon="{{ 'rule-node-config.ai.force-acknowledgement-hint' | translate }}" |
|
|
|
|
|
class="tb-form-row same-padding"> |
|
|
|
|
|
<mat-slide-toggle class="mat-slide margin" formControlName="forceAck"> |
|
|
|
|
|
{{ 'rule-node-config.ai.force-acknowledgement' | translate }} |
|
|
|
|
|
</mat-slide-toggle> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</mat-expansion-panel> |
|
|
</mat-expansion-panel> |
|
|
</div> |
|
|
</div> |
|
|
|