Refactor instruct names behavior controls (#2837) * Refactor instruct names behavior controls Closes #2819 * Remove current persona from force names * Don't add current user name in groups * Revert to old text * Add titles to names behavior * Proper default for names_behavior
Signed| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<|im_end|>", | 7 | "stop_sequence": "<|im_end|>", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<|im_end|>", | 7 | "stop_sequence": "<|im_end|>", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -9,8 +9,7 @@ | |||
| 9 | "stop_sequence": "<|END_OF_TURN_TOKEN|>", | 9 | "stop_sequence": "<|END_OF_TURN_TOKEN|>", |
| 10 | "wrap": false, | 10 | "wrap": false, |
| 11 | "macro": true, | 11 | "macro": true, |
| 12 | "names": true, | 12 | "names_behavior": "always", |
| 13 | "names_force_groups": true, | ||
| 14 | "activation_regex": "", | 13 | "activation_regex": "", |
| 15 | "skip_examples": false, | 14 | "skip_examples": false, |
| 16 | "output_suffix": "<|END_OF_TURN_TOKEN|>", | 15 | "output_suffix": "<|END_OF_TURN_TOKEN|>", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "\n<|im_start|>", | 7 | "stop_sequence": "\n<|im_start|>", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -10,8 +10,7 @@ | |||
| 10 | "separator_sequence": "", | 10 | "separator_sequence": "", |
| 11 | "wrap": false, | 11 | "wrap": false, |
| 12 | "macro": true, | 12 | "macro": true, |
| 13 | "names": false, | 13 | "names_behavior": "none", |
| 14 | "names_force_groups": false, | ||
| 15 | "activation_regex": "", | 14 | "activation_regex": "", |
| 16 | "skip_examples": false, | 15 | "skip_examples": false, |
| 17 | "name": "DreamGen Role-Play V1 Llama3" | 16 | "name": "DreamGen Role-Play V1 Llama3" |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<end_of_turn>", | 7 | "stop_sequence": "<end_of_turn>", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "BEGINNING OF CONVERSATION: ", | 12 | "system_sequence_prefix": "BEGINNING OF CONVERSATION: ", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<|eot_id|>", | 7 | "stop_sequence": "<|eot_id|>", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<|eot_id|>", | 7 | "stop_sequence": "<|eot_id|>", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "</s>", | 7 | "stop_sequence": "</s>", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "<|system|>", | 12 | "system_sequence_prefix": "<|system|>", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -9,8 +9,7 @@ | |||
| 9 | "stop_sequence": "<|end|>", | 9 | "stop_sequence": "<|end|>", |
| 10 | "wrap": false, | 10 | "wrap": false, |
| 11 | "macro": true, | 11 | "macro": true, |
| 12 | "names": true, | 12 | "names_behavior": "always", |
| 13 | "names_force_groups": true, | ||
| 14 | "activation_regex": "", | 13 | "activation_regex": "", |
| 15 | "skip_examples": false, | 14 | "skip_examples": false, |
| 16 | "output_suffix": "<|end|>\n", | 15 | "output_suffix": "<|end|>\n", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "<|user|>", | 7 | "stop_sequence": "<|user|>", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": true, | 10 | "names_behavior": "always", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "<|system|>", | 12 | "system_sequence_prefix": "<|system|>", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "SYSTEM: ", | 12 | "system_sequence_prefix": "SYSTEM: ", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": false, | 8 | "wrap": false, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "BEGINNING OF CONVERSATION:", | 12 | "system_sequence_prefix": "BEGINNING OF CONVERSATION:", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "force", |
| 11 | "names_force_groups": true, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -7,8 +7,7 @@ | |||
| 7 | "stop_sequence": "", | 7 | "stop_sequence": "", |
| 8 | "wrap": true, | 8 | "wrap": true, |
| 9 | "macro": true, | 9 | "macro": true, |
| 10 | "names": false, | 10 | "names_behavior": "none", |
| 11 | "names_force_groups": false, | ||
| 12 | "activation_regex": "", | 11 | "activation_regex": "", |
| 13 | "system_sequence_prefix": "", | 12 | "system_sequence_prefix": "", |
| 14 | "system_sequence_suffix": "", | 13 | "system_sequence_suffix": "", |
| @@ -162,8 +162,7 @@ | |||
| 162 | "stop_sequence": "", | 162 | "stop_sequence": "", |
| 163 | "wrap": true, | 163 | "wrap": true, |
| 164 | "macro": true, | 164 | "macro": true, |
| 165 | "names": false, | 165 | "names_behavior": "force", |
| 166 | "names_force_groups": true, | ||
| 167 | "activation_regex": "", | 166 | "activation_regex": "", |
| 168 | "system_sequence_prefix": "", | 167 | "system_sequence_prefix": "", |
| 169 | "system_sequence_suffix": "", | 168 | "system_sequence_suffix": "", |
| @@ -3297,14 +3297,23 @@ | |||
| 3297 | <input id="instruct_skip_examples" type="checkbox" /> | 3297 | <input id="instruct_skip_examples" type="checkbox" /> |
| 3298 | <small data-i18n="Skip Example Dialogues Formatting">Skip Example Dialogues Formatting</small> | 3298 | <small data-i18n="Skip Example Dialogues Formatting">Skip Example Dialogues Formatting</small> |
| 3299 | </label> | 3299 | </label> |
| 3300 | <label for="instruct_names" class="checkbox_label"> | 3300 | <div id="instruct_names_behavior"> |
| 3301 | <input id="instruct_names" type="checkbox" /> | 3301 | <small data-i18n="Include Names"> |
| 3302 | <small data-i18n="Include Names">Include Names</small> | 3302 | Include Names |
| 3303 | </small> | ||
| 3304 | <label for="instruct_names_behavior_none" class="checkbox_label" title="Do not add name prefixes before the message contents."> | ||
| 3305 | <input id="instruct_names_behavior_none" name="names_behavior" value="none" type="radio" /> | ||
| 3306 | <small data-i18n="Never">Never</small> | ||
| 3303 | </label> | 3307 | </label> |
| 3304 | <label for="instruct_names_force_groups" class="checkbox_label indent20p"> | 3308 | <label for="instruct_names_behavior_force" class="checkbox_label" title="Only add name prefixes to messages from group characters and past personas."> |
| 3305 | <input id="instruct_names_force_groups" type="checkbox" /> | 3309 | <input id="instruct_names_behavior_force" name="names_behavior" value="force" type="radio" /> |
| 3306 | <small data-i18n="Force for Groups and Personas">Force for Groups and Personas</small> | 3310 | <small data-i18n="Groups and Past Personas">Groups and Past Personas</small> |
| 3307 | </label> | 3311 | </label> |
| 3312 | <label for="instruct_names_behavior_always" class="checkbox_label" title="Always add name prefixes to messages."> | ||
| 3313 | <input id="instruct_names_behavior_always" name="names_behavior" value="always" type="radio" /> | ||
| 3314 | <small data-i18n="Always">Always</small> | ||
| 3315 | </label> | ||
| 3316 | </div> | ||
| 3308 | </div> | 3317 | </div> |
| 3309 | </div> | 3318 | </div> |
| 3310 | <div name="tokenizerSettingsBlock"> | 3319 | <div name="tokenizerSettingsBlock"> |
| @@ -14,6 +14,12 @@ import { regexFromString, resetScrollHeight } from './utils.js'; | |||
| 14 | */ | 14 | */ |
| 15 | export let instruct_presets = []; | 15 | export let instruct_presets = []; |
| 16 | 16 | ||
| 17 | export const names_behavior_types = { | ||
| 18 | NONE: 'none', | ||
| 19 | FORCE: 'force', | ||
| 20 | ALWAYS: 'always', | ||
| 21 | }; | ||
| 22 | |||
| 17 | const controls = [ | 23 | const controls = [ |
| 18 | { id: 'instruct_enabled', property: 'enabled', isCheckbox: true }, | 24 | { id: 'instruct_enabled', property: 'enabled', isCheckbox: true }, |
| 19 | { id: 'instruct_wrap', property: 'wrap', isCheckbox: true }, | 25 | { id: 'instruct_wrap', property: 'wrap', isCheckbox: true }, |
| @@ -30,8 +36,6 @@ const controls = [ | |||
| 30 | { id: 'instruct_user_alignment_message', property: 'user_alignment_message', isCheckbox: false }, | 36 | { id: 'instruct_user_alignment_message', property: 'user_alignment_message', isCheckbox: false }, |
| 31 | { id: 'instruct_stop_sequence', property: 'stop_sequence', isCheckbox: false }, | 37 | { id: 'instruct_stop_sequence', property: 'stop_sequence', isCheckbox: false }, |
| 32 | { id: 'instruct_names', property: 'names', isCheckbox: true }, | 38 | { id: 'instruct_names', property: 'names', isCheckbox: true }, |
| 33 | { id: 'instruct_macro', property: 'macro', isCheckbox: true }, | ||
| 34 | { id: 'instruct_names_force_groups', property: 'names_force_groups', isCheckbox: true }, | ||
| 35 | { id: 'instruct_first_output_sequence', property: 'first_output_sequence', isCheckbox: false }, | 39 | { id: 'instruct_first_output_sequence', property: 'first_output_sequence', isCheckbox: false }, |
| 36 | { id: 'instruct_last_output_sequence', property: 'last_output_sequence', isCheckbox: false }, | 40 | { id: 'instruct_last_output_sequence', property: 'last_output_sequence', isCheckbox: false }, |
| 37 | { id: 'instruct_first_input_sequence', property: 'first_input_sequence', isCheckbox: false }, | 41 | { id: 'instruct_first_input_sequence', property: 'first_input_sequence', isCheckbox: false }, |
| @@ -39,6 +43,7 @@ const controls = [ | |||
| 39 | { id: 'instruct_activation_regex', property: 'activation_regex', isCheckbox: false }, | 43 | { id: 'instruct_activation_regex', property: 'activation_regex', isCheckbox: false }, |
| 40 | { id: 'instruct_bind_to_context', property: 'bind_to_context', isCheckbox: true }, | 44 | { id: 'instruct_bind_to_context', property: 'bind_to_context', isCheckbox: true }, |
| 41 | { id: 'instruct_skip_examples', property: 'skip_examples', isCheckbox: true }, | 45 | { id: 'instruct_skip_examples', property: 'skip_examples', isCheckbox: true }, |
| 46 | { id: 'instruct_names_behavior input[name="names_behavior"]', property: 'names_behavior', isCheckbox: false }, | ||
| 42 | { id: 'instruct_system_same_as_user', property: 'system_same_as_user', isCheckbox: true, trigger: true }, | 47 | { id: 'instruct_system_same_as_user', property: 'system_same_as_user', isCheckbox: true, trigger: true }, |
| 43 | ]; | 48 | ]; |
| 44 | 49 | ||
| @@ -54,6 +59,15 @@ function migrateInstructModeSettings(settings) { | |||
| 54 | delete settings.separator_sequence; | 59 | delete settings.separator_sequence; |
| 55 | } | 60 | } |
| 56 | 61 | ||
| 62 | // names, names_force_groups => names_behavior | ||
| 63 | if (settings.names !== undefined) { | ||
| 64 | settings.names_behavior = settings.names | ||
| 65 | ? names_behavior_types.ALWAYS | ||
| 66 | : (settings.names_force_groups ? names_behavior_types.FORCE : names_behavior_types.NONE); | ||
| 67 | delete settings.names; | ||
| 68 | delete settings.names_force_groups; | ||
| 69 | } | ||
| 70 | |||
| 57 | const defaults = { | 71 | const defaults = { |
| 58 | input_suffix: '', | 72 | input_suffix: '', |
| 59 | system_sequence: '', | 73 | system_sequence: '', |
| @@ -65,6 +79,7 @@ function migrateInstructModeSettings(settings) { | |||
| 65 | names_force_groups: true, | 79 | names_force_groups: true, |
| 66 | skip_examples: false, | 80 | skip_examples: false, |
| 67 | system_same_as_user: false, | 81 | system_same_as_user: false, |
| 82 | names_behavior: names_behavior_types.FORCE, | ||
| 68 | }; | 83 | }; |
| 69 | 84 | ||
| 70 | for (let key in defaults) { | 85 | for (let key in defaults) { |
| @@ -94,6 +109,9 @@ export async function loadInstructMode(data) { | |||
| 94 | 109 | ||
| 95 | if (control.isCheckbox) { | 110 | if (control.isCheckbox) { |
| 96 | $element.prop('checked', power_user.instruct[control.property]); | 111 | $element.prop('checked', power_user.instruct[control.property]); |
| 112 | } else if (control.property === 'names_behavior') { | ||
| 113 | const behavior = power_user.instruct[control.property]; | ||
| 114 | $element.filter(`[value="${behavior}"]`).prop('checked', true); | ||
| 97 | } else { | 115 | } else { |
| 98 | $element.val(power_user.instruct[control.property]); | 116 | $element.val(power_user.instruct[control.property]); |
| 99 | } | 117 | } |
| @@ -311,9 +329,9 @@ export const force_output_sequence = { | |||
| 311 | * @returns {string} Formatted instruct mode chat message. | 329 | * @returns {string} Formatted instruct mode chat message. |
| 312 | */ | 330 | */ |
| 313 | export function formatInstructModeChat(name, mes, isUser, isNarrator, forceAvatar, name1, name2, forceOutputSequence) { | 331 | export function formatInstructModeChat(name, mes, isUser, isNarrator, forceAvatar, name1, name2, forceOutputSequence) { |
| 314 | let includeNames = isNarrator ? false : power_user.instruct.names; | 332 | let includeNames = isNarrator ? false : power_user.instruct.names_behavior === names_behavior_types.ALWAYS; |
| 315 | 333 | ||
| 316 | if (!isNarrator && power_user.instruct.names_force_groups && (selected_group || forceAvatar)) { | 334 | if (!isNarrator && power_user.instruct.names_behavior === names_behavior_types.FORCE && ((selected_group && name !== name1) || (forceAvatar && name !== name1))) { |
| 317 | includeNames = true; | 335 | includeNames = true; |
| 318 | } | 336 | } |
| 319 | 337 | ||
| @@ -416,7 +434,7 @@ export function formatInstructModeExamples(mesExamplesArray, name1, name2) { | |||
| 416 | return mesExamplesArray.map(x => x.replace(/<START>\n/i, blockHeading)); | 434 | return mesExamplesArray.map(x => x.replace(/<START>\n/i, blockHeading)); |
| 417 | } | 435 | } |
| 418 | 436 | ||
| 419 | const includeNames = power_user.instruct.names || (!!selected_group && power_user.instruct.names_force_groups); | 437 | const includeNames = power_user.instruct.names_behavior === names_behavior_types.ALWAYS || (!!selected_group && power_user.instruct.names_behavior === names_behavior_types.FORCE); |
| 420 | 438 | ||
| 421 | let inputPrefix = power_user.instruct.input_sequence || ''; | 439 | let inputPrefix = power_user.instruct.input_sequence || ''; |
| 422 | let outputPrefix = power_user.instruct.output_sequence || ''; | 440 | let outputPrefix = power_user.instruct.output_sequence || ''; |
| @@ -460,7 +478,7 @@ export function formatInstructModeExamples(mesExamplesArray, name1, name2) { | |||
| 460 | 478 | ||
| 461 | for (const example of blockExamples) { | 479 | for (const example of blockExamples) { |
| 462 | // If force group/persona names is set, we should override the include names for the user placeholder | 480 | // If force group/persona names is set, we should override the include names for the user placeholder |
| 463 | const includeThisName = includeNames || (power_user.instruct.names_force_groups && example.name == 'example_user'); | 481 | const includeThisName = includeNames || (power_user.instruct.names_behavior === names_behavior_types.FORCE && example.name == 'example_user'); |
| 464 | 482 | ||
| 465 | const prefix = example.name == 'example_user' ? inputPrefix : outputPrefix; | 483 | const prefix = example.name == 'example_user' ? inputPrefix : outputPrefix; |
| 466 | const suffix = example.name == 'example_user' ? inputSuffix : outputSuffix; | 484 | const suffix = example.name == 'example_user' ? inputSuffix : outputSuffix; |
| @@ -490,7 +508,7 @@ export function formatInstructModeExamples(mesExamplesArray, name1, name2) { | |||
| 490 | * @returns {string} Formatted instruct mode last prompt line. | 508 | * @returns {string} Formatted instruct mode last prompt line. |
| 491 | */ | 509 | */ |
| 492 | export function formatInstructModePrompt(name, isImpersonate, promptBias, name1, name2, isQuiet, isQuietToLoud) { | 510 | export function formatInstructModePrompt(name, isImpersonate, promptBias, name1, name2, isQuiet, isQuietToLoud) { |
| 493 | const includeNames = name && (power_user.instruct.names || (!!selected_group && power_user.instruct.names_force_groups)) && !(isQuiet && !isQuietToLoud); | 511 | const includeNames = name && (power_user.instruct.names_behavior === names_behavior_types.ALWAYS || (!!selected_group && power_user.instruct.names_behavior === names_behavior_types.FORCE)) && !(isQuiet && !isQuietToLoud); |
| 494 | 512 | ||
| 495 | function getSequence() { | 513 | function getSequence() { |
| 496 | // User impersonation prompt | 514 | // User impersonation prompt |
| @@ -668,6 +686,9 @@ jQuery(() => { | |||
| 668 | 686 | ||
| 669 | if (control.isCheckbox) { | 687 | if (control.isCheckbox) { |
| 670 | $element.prop('checked', power_user.instruct[control.property]).trigger('input'); | 688 | $element.prop('checked', power_user.instruct[control.property]).trigger('input'); |
| 689 | } else if (control.property === 'names_behavior') { | ||
| 690 | const behavior = power_user.instruct[control.property]; | ||
| 691 | $element.filter(`[value="${behavior}"]`).prop('checked', true).trigger('input'); | ||
| 671 | } else { | 692 | } else { |
| 672 | $element.val(power_user.instruct[control.property]); | 693 | $element.val(power_user.instruct[control.property]); |
| 673 | $element.trigger('input'); | 694 | $element.trigger('input'); |
| @@ -541,7 +541,7 @@ function setOpenAIMessages(chat) { | |||
| 541 | case character_names_behavior.NONE: | 541 | case character_names_behavior.NONE: |
| 542 | break; | 542 | break; |
| 543 | case character_names_behavior.DEFAULT: | 543 | case character_names_behavior.DEFAULT: |
| 544 | if (selected_group || (chat[j].force_avatar && chat[j].name !== name1 && chat[j].extra?.type !== system_message_types.NARRATOR)) { | 544 | if ((selected_group && chat[j].name !== name1) || (chat[j].force_avatar && chat[j].name !== name1 && chat[j].extra?.type !== system_message_types.NARRATOR)) { |
| 545 | content = `${chat[j].name}: ${content}`; | 545 | content = `${chat[j].name}: ${content}`; |
| 546 | } | 546 | } |
| 547 | break; | 547 | break; |
| @@ -32,6 +32,7 @@ import { | |||
| 32 | import { | 32 | import { |
| 33 | instruct_presets, | 33 | instruct_presets, |
| 34 | loadInstructMode, | 34 | loadInstructMode, |
| 35 | names_behavior_types, | ||
| 35 | selectInstructPreset, | 36 | selectInstructPreset, |
| 36 | } from './instruct-mode.js'; | 37 | } from './instruct-mode.js'; |
| 37 | 38 | ||
| @@ -224,8 +225,7 @@ let power_user = { | |||
| 224 | stop_sequence: '', | 225 | stop_sequence: '', |
| 225 | wrap: true, | 226 | wrap: true, |
| 226 | macro: true, | 227 | macro: true, |
| 227 | names: false, | 228 | names_behavior: names_behavior_types.FORCE, |
| 228 | names_force_groups: true, | ||
| 229 | activation_regex: '', | 229 | activation_regex: '', |
| 230 | bind_to_context: false, | 230 | bind_to_context: false, |
| 231 | user_alignment_message: '', | 231 | user_alignment_message: '', |