Merge branch 'staging' into feat/ext-installer-branch

999a43b2e54a61015b7485b6425dcd4896e60e7e

Cohee <18619528+Cohee1207@users.noreply.github.com>

65 files changed, +151 -89Showing whitespace changes
default/content/presets/context/Adventure.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": false,6 "always_force_name2": false,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": true,8 "single_line": true,
default/content/presets/context/Alpaca-Single-Turn.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": false,6 "always_force_name2": false,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Alpaca.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/ChatML-Names.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/ChatML.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Command R.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>New Roleplay:<|END_OF_TURN_TOKEN|>",4 "chat_start": "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>New Roleplay:<|END_OF_TURN_TOKEN|>",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/DeepSeek-V2.5.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Default.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "***",3 "example_separator": "***",
4 "chat_start": "***",4 "chat_start": "***",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/DreamGen Role-Play V1 ChatML.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": false,6 "always_force_name2": false,
8 "trim_sentences": true,7 "trim_sentences": true,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/DreamGen Role-Play V1 Llama3.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nWrite an example narrative / conversation that is not part of the main story.",3 "example_separator": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nWrite an example narrative / conversation that is not part of the main story.",
4 "chat_start": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nStart the role-play between {{char}} and {{user}}.",4 "chat_start": "<|eot_id|>\n<|start_header_id|>user<|end_header_id|>\n\nStart the role-play between {{char}} and {{user}}.",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": false,6 "always_force_name2": false,
8 "trim_sentences": true,7 "trim_sentences": true,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/GLM-4.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Gemma 2.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Libra-32B.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "### Example:",3 "example_separator": "### Example:",
4 "chat_start": "### START ROLEPLAY:",4 "chat_start": "### START ROLEPLAY:",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Lightning 1.1.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "Example of an interaction:\n",3 "example_separator": "Example of an interaction:\n",
4 "chat_start": "This is the history of the roleplay:\n",4 "chat_start": "This is the history of the roleplay:\n",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Llama 2 Chat.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Llama 3 Instruct.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Llama 4 Instruct.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Llama-3-Instruct-Names.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Minimalist.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Mistral V1.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Mistral V2 & V3.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Mistral V3-Tekken.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Mistral V7.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/NovelAI.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "***",3 "example_separator": "***",
4 "chat_start": "***",4 "chat_start": "***",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/OldDefault.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "This is how {{char}} should talk",3 "example_separator": "This is how {{char}} should talk",
4 "chat_start": "\nThen the roleplay chat between {{user}} and {{char}} begins.\n",4 "chat_start": "\nThen the roleplay chat between {{user}} and {{char}} begins.\n",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Phi.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Pygmalion.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Story.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Synthia.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/Tulu.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "",3 "example_separator": "",
4 "chat_start": "",4 "chat_start": "",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/context/simple-proxy-for-tavern.json+0 -1
@@ -3,7 +3,6 @@
3 "example_separator": "### New Roleplay:",3 "example_separator": "### New Roleplay:",
4 "chat_start": "### New Roleplay:",4 "chat_start": "### New Roleplay:",
5 "use_stop_strings": false,5 "use_stop_strings": false,
6 "allow_jailbreak": false,
7 "always_force_name2": true,6 "always_force_name2": true,
8 "trim_sentences": false,7 "trim_sentences": false,
9 "single_line": false,8 "single_line": false,
default/content/presets/sysprompt/Actor.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Actor",2 "name": "Actor",
3 "content": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}."3 "content": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Assistant - Expert.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Assistant - Expert",2 "name": "Assistant - Expert",
3 "content": "You are a helpful assistant. Please answer truthfully and write out your thinking step by step to be sure you get the right answer. If you make a mistake or encounter an error in your thinking, say so out loud and attempt to correct it. If you don't know or aren't sure about something, say so clearly. You will act as a professional logician, mathematician, and physicist. You will also act as the most appropriate type of expert to answer any particular question or solve the relevant problem; state which expert type your are, if so. Also think of any particular named expert that would be ideal to answer the relevant question or solve the relevant problem; name and act as them, if appropriate."3 "content": "You are a helpful assistant. Please answer truthfully and write out your thinking step by step to be sure you get the right answer. If you make a mistake or encounter an error in your thinking, say so out loud and attempt to correct it. If you don't know or aren't sure about something, say so clearly. You will act as a professional logician, mathematician, and physicist. You will also act as the most appropriate type of expert to answer any particular question or solve the relevant problem; state which expert type your are, if so. Also think of any particular named expert that would be ideal to answer the relevant question or solve the relevant problem; name and act as them, if appropriate.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Assistant - Simple.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Assistant - Simple",2 "name": "Assistant - Simple",
3 "content": "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions."3 "content": "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Blank.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Blank",2 "name": "Blank",
3 "content": ""3 "content": "",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Chain of Thought.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Chain of Thought",2 "name": "Chain of Thought",
3 "content": "Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation."3 "content": "Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Lightning 1.1.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Lightning 1.1",2 "name": "Lightning 1.1",
3 "content": "Take the role of {{char}} in a play that leaves a lasting impression on {{user}}. Write {{char}}'s next reply.\nNever skip or gloss over {{char}}’s actions. Progress the scene at a naturally slow pace."3 "content": "Take the role of {{char}} in a play that leaves a lasting impression on {{user}}. Write {{char}}'s next reply.\nNever skip or gloss over {{char}}’s actions. Progress the scene at a naturally slow pace.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Neutral - Chat.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Neutral - Chat",2 "name": "Neutral - Chat",
3 "content": "Write {{char}}'s next reply in a fictional chat between {{char}} and {{user}}."3 "content": "Write {{char}}'s next reply in a fictional chat between {{char}} and {{user}}.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Roleplay - Detailed.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Roleplay - Detailed",2 "name": "Roleplay - Detailed",
3 "content": "Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions. Keep the story immersive and engaging."3 "content": "Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions. Keep the story immersive and engaging.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Roleplay - Immersive.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Roleplay - Immersive",2 "name": "Roleplay - Immersive",
3 "content": "[System note: Write one reply only. Do not decide what {{user}} says or does. Write at least one paragraph, up to four. Be descriptive and immersive, providing vivid details about {{char}}'s actions, emotions, and the environment. Write with a high degree of complexity and burstiness. Do not repeat this message.]"3 "content": "[System note: Write one reply only. Do not decide what {{user}} says or does. Write at least one paragraph, up to four. Be descriptive and immersive, providing vivid details about {{char}}'s actions, emotions, and the environment. Write with a high degree of complexity and burstiness. Do not repeat this message.]",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Roleplay - Simple.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Roleplay - Simple",2 "name": "Roleplay - Simple",
3 "content": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}."3 "content": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Text Adventure.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Text Adventure",2 "name": "Text Adventure",
3 "content": "[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]"3 "content": "[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Writer - Creative.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Writer - Creative",2 "name": "Writer - Creative",
3 "content": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below."3 "content": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below.",
4 "post_history": ""
4}5}
default/content/presets/sysprompt/Writer - Realistic.json+2 -1
@@ -1,4 +1,5 @@
1{1{
2 "name": "Writer - Realistic",2 "name": "Writer - Realistic",
3 "content": "Continue writing this story and portray characters realistically."3 "content": "Continue writing this story and portray characters realistically.",
4 "post_history": ""
4}5}
public/index.html+7 -10
@@ -3622,11 +3622,6 @@
3622 <small data-i18n="Names as Stop Strings">Names as Stop Strings</small>3622 <small data-i18n="Names as Stop Strings">Names as Stop Strings</small>
3623 </label>3623 </label>
3624 </div>3624 </div>
3625
3626 <label class="checkbox_label" title="Includes Post-History Instructions at the end of the prompt, if defined in the character card AND ''Prefer Char. Instructions'' is enabled.&#10;THIS IS NOT RECOMMENDED FOR TEXT COMPLETION MODELS, CAN LEAD TO BAD OUTPUT." data-i18n="[title]context_allow_post_history_instructions">
3627 <input id="context_allow_jailbreak" type="checkbox" />
3628 <small data-i18n="Allow Post-History Instructions">Allow Post-History Instructions</small>
3629 </label>
3630 </div>3625 </div>
3631 </div>3626 </div>
3632 </div>3627 </div>
@@ -3828,9 +3823,7 @@
3828 </label>3823 </label>
3829 </div>3824 </div>
3830 </h4>3825 </h4>
3831 <div id="SystemPromptBlock">3826 <div id="SystemPromptBlock" class="marginBot10">
3832
3833
3834 <div class="flex-container" title="Select your current System Prompt" data-i18n="[title]Select your current System Prompt">3827 <div class="flex-container" title="Select your current System Prompt" data-i18n="[title]Select your current System Prompt">
3835 <select id="sysprompt_select" data-preset-manager-for="sysprompt" class="flex1 text_pole"></select>3828 <select id="sysprompt_select" data-preset-manager-for="sysprompt" class="flex1 text_pole"></select>
3836 <div class="flex-container margin0 justifyCenter gap3px">3829 <div class="flex-container margin0 justifyCenter gap3px">
@@ -3852,10 +3845,14 @@
3852 </label>3845 </label>
3853 <textarea id="sysprompt_content" class="text_pole textarea_compact autoSetHeight"></textarea>3846 <textarea id="sysprompt_content" class="text_pole textarea_compact autoSetHeight"></textarea>
3854 </div>3847 </div>
3855 </div>
38563848
3857 <div>3849 <div>
3858 &nbsp;3850 <label for="sysprompt_post_history" class="flex-container">
3851 <small data-i18n="Post-History Instructions">Post-History Instructions</small>
3852 <i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="sysprompt_post_history" title="Expand the editor" data-i18n="[title]Expand the editor"></i>
3853 </label>
3854 <textarea id="sysprompt_post_history" class="text_pole textarea_compact autoSetHeight"></textarea>
3855 </div>
3859 </div>3856 </div>
38603857
3861 <div>3858 <div>
public/locales/ar-sa.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "بداية الدردشة",411 "Chat Start": "بداية الدردشة",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "أضف بداية الدردشة وفاصل الأمثلة إلى قائمة سلاسل التوقف.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "أضف بداية الدردشة وفاصل الأمثلة إلى قائمة سلاسل التوقف.",
413 "Use as Stop Strings": "استخدم كسلاسل التوقف",413 "Use as Stop Strings": "استخدم كسلاسل التوقف",
414 "context_allow_jailbreak": "يتضمن كسر الحماية في نهاية المطالبة، إذا تم تحديده في بطاقة الشخصية و''Prefer Char. تم تمكين الهروب من السجن.\nلا يُنصح بهذا بالنسبة لنماذج إكمال النص، فقد يؤدي إلى نتائج سيئة.",
415 "Allow Jailbreak": "السماح بالجيلبريك",414 "Allow Jailbreak": "السماح بالجيلبريك",
416 "Context Order": "ترتيب السياق",415 "Context Order": "ترتيب السياق",
417 "Summary": "ملخص",416 "Summary": "ملخص",
public/locales/de-de.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Chat-Start",411 "Chat Start": "Chat-Start",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Fügen Sie einer Liste von Stoppzeichenfolgen „Chat-Start“ und „Beispieltrennzeichen“ hinzu.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Fügen Sie einer Liste von Stoppzeichenfolgen „Chat-Start“ und „Beispieltrennzeichen“ hinzu.",
413 "Use as Stop Strings": "Verwende als Stoppzeichenfolgen",413 "Use as Stop Strings": "Verwende als Stoppzeichenfolgen",
414 "context_allow_jailbreak": "Schließt Jailbreak am Ende der Eingabeaufforderung ein, wenn dies in der Charakterkarte definiert ist UND „Charakter-Jailbreak bevorzugen“ aktiviert ist.\nDIES WIRD FÜR TEXTVERVOLLSTÄNDIGUNGSMODELLE NICHT EMPFOHLEN, KANN ZU SCHLECHTEN AUSGABEN FÜHREN.",
415 "Allow Jailbreak": "Jailbreak zulassen",414 "Allow Jailbreak": "Jailbreak zulassen",
416 "Context Order": "Kontextreihenfolge",415 "Context Order": "Kontextreihenfolge",
417 "Summary": "Zusammenfassung",416 "Summary": "Zusammenfassung",
public/locales/es-es.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Inicio de chat",411 "Chat Start": "Inicio de chat",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Agregue Inicio de chat y Separador de ejemplo a una lista de cadenas de parada.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Agregue Inicio de chat y Separador de ejemplo a una lista de cadenas de parada.",
413 "Use as Stop Strings": "Usar como Cadenas de Parada",413 "Use as Stop Strings": "Usar como Cadenas de Parada",
414 "context_allow_jailbreak": "Incluye Jailbreak al final del mensaje, si está definido en la tarjeta de personaje Y está habilitado \"Prefer Char. Jailbreak\".\nESTO NO SE RECOMIENDA PARA MODELOS DE COMPLETO DE TEXTO, PUEDE PRODUCIR UN RESULTADO INCORRECTO.",
415 "Allow Jailbreak": "Permitir Jailbreak",414 "Allow Jailbreak": "Permitir Jailbreak",
416 "Context Order": "Orden de contexto",415 "Context Order": "Orden de contexto",
417 "Summary": "Resumen",416 "Summary": "Resumen",
public/locales/fr-fr.json+0 -1
@@ -1448,7 +1448,6 @@
1448 "Add Character and User names to a list of stopping strings.": "Ajouter les noms de personnages et d'utilisateurs à une liste de chaînes d'arrêt.",1448 "Add Character and User names to a list of stopping strings.": "Ajouter les noms de personnages et d'utilisateurs à une liste de chaînes d'arrêt.",
1449 "Names as Stop Strings": "Noms comme chaînes d'arrêt",1449 "Names as Stop Strings": "Noms comme chaînes d'arrêt",
1450 "context_allow_post_history_instructions": "Inclut les instructions post-historiques à la fin du prompt, si elles sont définies dans la fiche de personnage ET si l'option 'Préférer les instructions de personnage' est activée.\nN'EST PAS RECOMMANDÉ POUR LES MODÈLES DE COMPLÉTION DE TEXTE, CAR IL PEUT ENTRAÎNER DE MAUVAIS RÉSULTATS.",1450 "context_allow_post_history_instructions": "Inclut les instructions post-historiques à la fin du prompt, si elles sont définies dans la fiche de personnage ET si l'option 'Préférer les instructions de personnage' est activée.\nN'EST PAS RECOMMANDÉ POUR LES MODÈLES DE COMPLÉTION DE TEXTE, CAR IL PEUT ENTRAÎNER DE MAUVAIS RÉSULTATS.",
1451 "Allow Post-History Instructions": "Autoriser les instructions post-histoire",
1452 "Instruct Template": "Modèle d'instruction",1451 "Instruct Template": "Modèle d'instruction",
1453 "instruct_derived": "Dériver des métadonnées du modèle, si possible.",1452 "instruct_derived": "Dériver des métadonnées du modèle, si possible.",
1454 "instruct_enabled": "Activer le mode d'instruction",1453 "instruct_enabled": "Activer le mode d'instruction",
public/locales/is-is.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Chat Start",411 "Chat Start": "Chat Start",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Bættu Chat Start og Example Separator við lista yfir stöðvunarstrengi.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Bættu Chat Start og Example Separator við lista yfir stöðvunarstrengi.",
413 "Use as Stop Strings": "Nota sem Stoppa Strengir",413 "Use as Stop Strings": "Nota sem Stoppa Strengir",
414 "context_allow_jailbreak": "Inniheldur Jailbreak í lok hvetjunnar, ef það er skilgreint á stafkortinu OG ''Velst Char. Jailbreak'' er virkt.\nÞETTA ER EKKI MÆLT FYRIR TEXTAÚRSLUNARGERÐ, GETUR leitt til lélegrar úttaks.",
415 "Allow Jailbreak": "Leyfa jailbreak",414 "Allow Jailbreak": "Leyfa jailbreak",
416 "Context Order": "Samhengisröð",415 "Context Order": "Samhengisröð",
417 "Summary": "Samantekt",416 "Summary": "Samantekt",
public/locales/it-it.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Inizio chat",411 "Chat Start": "Inizio chat",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Aggiungi Inizio chat e Separatore di esempio a un elenco di stringhe di arresto.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Aggiungi Inizio chat e Separatore di esempio a un elenco di stringhe di arresto.",
413 "Use as Stop Strings": "Usa come stringhe di arresto",413 "Use as Stop Strings": "Usa come stringhe di arresto",
414 "context_allow_jailbreak": "Include il jailbreak alla fine del prompt, se definito nella carta personaggio E ''Preferisci Char. Il jailbreak'' è abilitato.\nQUESTO NON È CONSIGLIATO PER I MODELLI DI COMPLETAMENTO DEL TESTO, PUÒ PORTARE A UN RISULTATO CATTIVO.",
415 "Allow Jailbreak": "Consenti jailbreak",414 "Allow Jailbreak": "Consenti jailbreak",
416 "Context Order": "Ordine del contesto",415 "Context Order": "Ordine del contesto",
417 "Summary": "Riepilogo",416 "Summary": "Riepilogo",
public/locales/ja-jp.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "チャット開始",411 "Chat Start": "チャット開始",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "停止文字列のリストにチャット開始と例の区切り文字を追加します。",412 "Add Chat Start and Example Separator to a list of stopping strings.": "停止文字列のリストにチャット開始と例の区切り文字を追加します。",
413 "Use as Stop Strings": "ストップ文字列として使用",413 "Use as Stop Strings": "ストップ文字列として使用",
414 "context_allow_jailbreak": "文字カードで定義されていて、「文字 Jailbreak を優先」が有効になっている場合は、プロンプトの最後に Jailbreak が含まれます。\nこれはテキスト補完モデルには推奨されません。出力が悪くなる可能性があります。",
415 "Allow Jailbreak": "脱獄を許可する",414 "Allow Jailbreak": "脱獄を許可する",
416 "Context Order": "コンテキスト順序",415 "Context Order": "コンテキスト順序",
417 "Summary": "まとめ",416 "Summary": "まとめ",
public/locales/ko-kr.json+0 -2
@@ -421,7 +421,6 @@
421 "Chat Start": "채팅 시작",421 "Chat Start": "채팅 시작",
422 "Add Chat Start and Example Separator to a list of stopping strings.": "중지 문자열 목록에 채팅 시작 및 예제 구분 기호를 추가합니다.",422 "Add Chat Start and Example Separator to a list of stopping strings.": "중지 문자열 목록에 채팅 시작 및 예제 구분 기호를 추가합니다.",
423 "Use as Stop Strings": "중지 문자열로 사용",423 "Use as Stop Strings": "중지 문자열로 사용",
424 "context_allow_jailbreak": "캐릭터 카드에 정의되어 있고 ''Prefer Char. Jailbreak''가 활성화되어 있는 경우 프롬프트 끝에 Jailbreak를 포함합니다.\n이는 텍스트 완성 모델에 권장되지 않으며, 나쁜 출력으로 이어질 수 있습니다.",
425 "Allow Jailbreak": "탈옥 허용",424 "Allow Jailbreak": "탈옥 허용",
426 "Context Order": "컨텍스트 순서",425 "Context Order": "컨텍스트 순서",
427 "Summary": "요약",426 "Summary": "요약",
@@ -1520,7 +1519,6 @@
1520 "Always": "항상 추가함",1519 "Always": "항상 추가함",
1521 "Separators as Stop Strings": "구분 기호를 정지 문자열로 사용하기",1520 "Separators as Stop Strings": "구분 기호를 정지 문자열로 사용하기",
1522 "Names as Stop Strings": "캐릭터의 이름들을 정지 문자열로 사용하기",1521 "Names as Stop Strings": "캐릭터의 이름들을 정지 문자열로 사용하기",
1523 "Allow Post-History Instructions": "Post-History 지침 허용",
1524 "Image Captioning": "이미지 캡셔닝",1522 "Image Captioning": "이미지 캡셔닝",
1525 "Automatically caption images": "자동으로 이미지에 대한 설명 문장으로 나타내기",1523 "Automatically caption images": "자동으로 이미지에 대한 설명 문장으로 나타내기",
1526 "Edit captions before saving": "저장하기 전에 이미지에 대한 설명 문장 편집하기",1524 "Edit captions before saving": "저장하기 전에 이미지에 대한 설명 문장 편집하기",
public/locales/nl-nl.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Chatstart",411 "Chat Start": "Chatstart",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Voeg Chat Start en Voorbeeldscheidingsteken toe aan een lijst met stoptekenreeksen.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Voeg Chat Start en Voorbeeldscheidingsteken toe aan een lijst met stoptekenreeksen.",
413 "Use as Stop Strings": "Gebruik als stopreeksen",413 "Use as Stop Strings": "Gebruik als stopreeksen",
414 "context_allow_jailbreak": "Inclusief jailbreak aan het einde van de prompt, indien gedefinieerd in de karakterkaart EN ''Prefer Char. Jailbreak'' is ingeschakeld.\nDIT WORDT NIET AANBEVOLEN VOOR MODELLEN VOOR HET INVOEREN VAN TEKST. KAN TOT SLECHTE UITVOER LEIDEN.",
415 "Allow Jailbreak": "Jailbreak toestaan",414 "Allow Jailbreak": "Jailbreak toestaan",
416 "Context Order": "Contextvolgorde",415 "Context Order": "Contextvolgorde",
417 "Summary": "Samenvatting",416 "Summary": "Samenvatting",
public/locales/pt-pt.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Início do Chat",411 "Chat Start": "Início do Chat",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Adicione o início do bate-papo e o separador de exemplo a uma lista de strings de parada.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Adicione o início do bate-papo e o separador de exemplo a uma lista de strings de parada.",
413 "Use as Stop Strings": "Usar como Strings de Parada",413 "Use as Stop Strings": "Usar como Strings de Parada",
414 "context_allow_jailbreak": "Inclui Jailbreak no final do prompt, se definido no cartão de personagem E ''Prefer Char. Jailbreak'' está habilitado.\nISTO NÃO É RECOMENDADO PARA MODELOS DE COMPLEMENTAÇÃO DE TEXTO, PODE LEVAR A UMA SAÍDA RUIM.",
415 "Allow Jailbreak": "Permitir jailbreak",414 "Allow Jailbreak": "Permitir jailbreak",
416 "Context Order": "Ordem de Contexto",415 "Context Order": "Ordem de Contexto",
417 "Summary": "Resumo",416 "Summary": "Resumo",
public/locales/ru-ru.json+0 -2
@@ -1257,7 +1257,6 @@
1257 "Peek a password": "Посмотреть пароль",1257 "Peek a password": "Посмотреть пароль",
1258 "Clear your cookie": "Clear your cookie",1258 "Clear your cookie": "Clear your cookie",
1259 "Add Chat Start and Example Separator to a list of stopping strings.": "Использовать Начало чата и Разделитель примеров сообщений в качестве стоп-строк.",1259 "Add Chat Start and Example Separator to a list of stopping strings.": "Использовать Начало чата и Разделитель примеров сообщений в качестве стоп-строк.",
1260 "context_allow_jailbreak": "Если в карточке есть джейлбрейк И ПРИ ЭТОМ включена опция \"Приоритет джейлбрейку из карточки персонажа\", то этот джейлбрейк добавляется в конец промпта.\nНЕ РЕКОМЕНДУЕТСЯ ДЛЯ МОДЕЛЕЙ TEXT COMPLETION, МОЖЕТ ПОРТИТЬ ВЫХОДНОЙ ТЕКСТ.",
1261 "Context Order": "Context Order",1260 "Context Order": "Context Order",
1262 "Summary": "Summary",1261 "Summary": "Summary",
1263 "Example Dialogues": "Примеры диалогов",1262 "Example Dialogues": "Примеры диалогов",
@@ -1650,7 +1649,6 @@
1650 "Separators as Stop Strings": "Разделители как стоп-строки",1649 "Separators as Stop Strings": "Разделители как стоп-строки",
1651 "Names as Stop Strings": "Имена как стоп-строки",1650 "Names as Stop Strings": "Имена как стоп-строки",
1652 "Add Character and User names to a list of stopping strings.": "Добавлять имена персонажа и пользователя в список стоп-строк.",1651 "Add Character and User names to a list of stopping strings.": "Добавлять имена персонажа и пользователя в список стоп-строк.",
1653 "Allow Post-History Instructions": "Разрешить инструкции после истории",
1654 "context_allow_post_history_instructions": "Добавлять в конец промпта инструкции после истории. Работает только при наличии таких инструкций в карточке И при включенной опции ''Приоритет инструкциям из карточек''.\nНЕ РЕКОМЕНДУЕТСЯ ДЛЯ МОДЕЛЕЙ TEXT COMPLETION, МОЖЕТ ПОРТИТЬ ВЫХОДНОЙ ТЕКСТ.",1652 "context_allow_post_history_instructions": "Добавлять в конец промпта инструкции после истории. Работает только при наличии таких инструкций в карточке И при включенной опции ''Приоритет инструкциям из карточек''.\nНЕ РЕКОМЕНДУЕТСЯ ДЛЯ МОДЕЛЕЙ TEXT COMPLETION, МОЖЕТ ПОРТИТЬ ВЫХОДНОЙ ТЕКСТ.",
1655 "First User Prefix": "Первый префикс пользователя",1653 "First User Prefix": "Первый префикс пользователя",
1656 "Inserted before the first User's message.": "Вставляется перед первым сообщением пользователя.",1654 "Inserted before the first User's message.": "Вставляется перед первым сообщением пользователя.",
public/locales/uk-ua.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Початок чату",411 "Chat Start": "Початок чату",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Додайте початок чату та роздільник прикладів до списку рядків зупинки.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Додайте початок чату та роздільник прикладів до списку рядків зупинки.",
413 "Use as Stop Strings": "Використовувати як рядки зупинки",413 "Use as Stop Strings": "Використовувати як рядки зупинки",
414 "context_allow_jailbreak": "Включає втечу з в’язниці в кінці підказки, якщо визначено в картці символів ТА «Переважати символ. Втечу з в'язниці'' увімкнено.\nЦЕ НЕ РЕКОМЕНДУЄТЬСЯ ДЛЯ МОДЕЛЕЙ ЗАВЕРШЕННЯ ТЕКСТУ, МОЖЕ ПРИЗВЕСТИ ДО ПОГАНОГО РЕЗУЛЬТАТУ.",
415 "Allow Jailbreak": "Дозволити втечу з в'язниці",414 "Allow Jailbreak": "Дозволити втечу з в'язниці",
416 "Context Order": "Порядок контексту",415 "Context Order": "Порядок контексту",
417 "Summary": "Резюме",416 "Summary": "Резюме",
public/locales/vi-vn.json+0 -1
@@ -411,7 +411,6 @@
411 "Chat Start": "Bắt đầu Chat",411 "Chat Start": "Bắt đầu Chat",
412 "Add Chat Start and Example Separator to a list of stopping strings.": "Thêm Bắt đầu trò chuyện và Dấu phân cách ví dụ vào danh sách các chuỗi dừng.",412 "Add Chat Start and Example Separator to a list of stopping strings.": "Thêm Bắt đầu trò chuyện và Dấu phân cách ví dụ vào danh sách các chuỗi dừng.",
413 "Use as Stop Strings": "Sử dụng như chuỗi dừng",413 "Use as Stop Strings": "Sử dụng như chuỗi dừng",
414 "context_allow_jailbreak": "Bao gồm Bẻ khóa ở cuối Prompt, nếu được xác định trong thẻ ký tự VÀ ''Thích Char. Bẻ khóa'' được bật.\nĐIỀU NÀY KHÔNG ĐƯỢC KHUYẾN NGHỊ CHO CÁC MÔ HÌNH HOÀN THÀNH VĂN BẢN, CÓ THỂ DẪN ĐẾN ĐẦU RA XẤU.",
415 "Allow Jailbreak": "Cho phép bẻ khóa",414 "Allow Jailbreak": "Cho phép bẻ khóa",
416 "Context Order": "Thứ tự bối cảnh",415 "Context Order": "Thứ tự bối cảnh",
417 "Summary": "Bản tóm tắt",416 "Summary": "Bản tóm tắt",
public/locales/zh-cn.json+0 -1
@@ -504,7 +504,6 @@
504 "Add Character and User names to a list of stopping strings.": "将角色和用户名添加到停止字符串列表中。",504 "Add Character and User names to a list of stopping strings.": "将角色和用户名添加到停止字符串列表中。",
505 "Names as Stop Strings": "名称作为终止字符串",505 "Names as Stop Strings": "名称作为终止字符串",
506 "context_allow_post_history_instructions": "如果在角色卡中定义并且启用了“首选角色卡说明”,则在提示末尾包含后历史说明。\n不建议在文本补全模型中使用此功能,否则会导致输出错误。",506 "context_allow_post_history_instructions": "如果在角色卡中定义并且启用了“首选角色卡说明”,则在提示末尾包含后历史说明。\n不建议在文本补全模型中使用此功能,否则会导致输出错误。",
507 "Allow Post-History Instructions": "允许后历史说明",
508 "Instruct Template": "指导模板",507 "Instruct Template": "指导模板",
509 "instruct_derived": "如果可能,从模型元数据中获取",508 "instruct_derived": "如果可能,从模型元数据中获取",
510 "instruct_bind_to_context": "如果启用,上下文模板将根据所选的指导模板名称或偏好自动选择。",509 "instruct_bind_to_context": "如果启用,上下文模板将根据所选的指导模板名称或偏好自动选择。",
public/locales/zh-tw.json+0 -2
@@ -412,7 +412,6 @@
412 "Chat Start": "聊天開始符號",412 "Chat Start": "聊天開始符號",
413 "Add Chat Start and Example Separator to a list of stopping strings.": "將聊天開始和範例分隔符號加入終止字串中。",413 "Add Chat Start and Example Separator to a list of stopping strings.": "將聊天開始和範例分隔符號加入終止字串中。",
414 "Use as Stop Strings": "用作停止字串",414 "Use as Stop Strings": "用作停止字串",
415 "context_allow_jailbreak": "如果在角色卡中定義了越獄,且啟用了「角色卡越獄優先」,則會在提示詞的結尾加入越獄內容。\n這不建議用於文字完成模型,因為可能導致不良的輸出結果。",
416 "Allow Jailbreak": "允許越獄",415 "Allow Jailbreak": "允許越獄",
417 "Context Order": "上下文順序",416 "Context Order": "上下文順序",
418 "Summary": "摘要",417 "Summary": "摘要",
@@ -1555,7 +1554,6 @@
1555 "All": "全部",1554 "All": "全部",
1556 "Allow fallback models": "允許回退模型",1555 "Allow fallback models": "允許回退模型",
1557 "Allow fallback providers": "允許回退供應商",1556 "Allow fallback providers": "允許回退供應商",
1558 "Allow Post-History Instructions": "允許聊天歷史後指示",
1559 "Allow reverse proxy": "允許反向代理",1557 "Allow reverse proxy": "允許反向代理",
1560 "Alternate Greeting #": "備選問候語 #",1558 "Alternate Greeting #": "備選問候語 #",
1561 "alternate_greetings_hint_1": "點選",1559 "alternate_greetings_hint_1": "點選",
public/script.js+7 -5
@@ -4000,7 +4000,9 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro
40004000
4001 if (main_api !== 'openai') {4001 if (main_api !== 'openai') {
4002 if (power_user.sysprompt.enabled) {4002 if (power_user.sysprompt.enabled) {
4003 system = power_user.prefer_character_prompt && system ? system : baseChatReplace(power_user.sysprompt.content, name1, name2);4003 system = power_user.prefer_character_prompt && system
4004 ? substituteParams(system, name1, name2, (power_user.sysprompt.content ?? ''))
4005 : baseChatReplace(power_user.sysprompt.content, name1, name2);
4004 system = isInstruct ? formatInstructModeSystemPrompt(substituteParams(system, name1, name2, power_user.sysprompt.content)) : system;4006 system = isInstruct ? formatInstructModeSystemPrompt(substituteParams(system, name1, name2, power_user.sysprompt.content)) : system;
4005 } else {4007 } else {
4006 // Nullify if it's not enabled4008 // Nullify if it's not enabled
@@ -4207,10 +4209,10 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro
4207 injectedIndices = await doChatInject(coreChat, isContinue);4209 injectedIndices = await doChatInject(coreChat, isContinue);
4208 }4210 }
42094211
4210 // Insert character jailbreak as the last user message (if exists, allowed, preferred, and not using Chat Completion)4212 if (main_api !== 'openai' && power_user.sysprompt.enabled) {
4211 if (power_user.context.allow_jailbreak && power_user.prefer_character_jailbreak && main_api !== 'openai' && jailbreak) {4213 jailbreak = power_user.prefer_character_jailbreak && jailbreak
4212 // Set "original" explicity to empty string since there's no original4214 ? substituteParams(jailbreak, name1, name2, (power_user.sysprompt.post_history ?? ''))
4213 jailbreak = substituteParams(jailbreak, name1, name2, '');4215 : baseChatReplace(power_user.sysprompt.post_history, name1, name2);
42144216
4215 // When continuing generation of previous output, last user message precedes the message to continue4217 // When continuing generation of previous output, last user message precedes the message to continue
4216 if (isContinue) {4218 if (isContinue) {
public/scripts/power-user.js+1 -2
@@ -244,7 +244,6 @@ let power_user = {
244 chat_start: defaultChatStart,244 chat_start: defaultChatStart,
245 example_separator: defaultExampleSeparator,245 example_separator: defaultExampleSeparator,
246 use_stop_strings: true,246 use_stop_strings: true,
247 allow_jailbreak: false,
248 names_as_stop_strings: true,247 names_as_stop_strings: true,
249 },248 },
250249
@@ -255,6 +254,7 @@ let power_user = {
255 enabled: true,254 enabled: true,
256 name: 'Neutral - Chat',255 name: 'Neutral - Chat',
257 content: 'Write {{char}}\'s next reply in a fictional chat between {{char}} and {{user}}.',256 content: 'Write {{char}}\'s next reply in a fictional chat between {{char}} and {{user}}.',
257 post_history: '',
258 },258 },
259259
260 reasoning: {260 reasoning: {
@@ -334,7 +334,6 @@ const contextControls = [
334 { id: 'context_example_separator', property: 'example_separator', isCheckbox: false, isGlobalSetting: false },334 { id: 'context_example_separator', property: 'example_separator', isCheckbox: false, isGlobalSetting: false },
335 { id: 'context_chat_start', property: 'chat_start', isCheckbox: false, isGlobalSetting: false },335 { id: 'context_chat_start', property: 'chat_start', isCheckbox: false, isGlobalSetting: false },
336 { id: 'context_use_stop_strings', property: 'use_stop_strings', isCheckbox: true, isGlobalSetting: false, defaultValue: false },336 { id: 'context_use_stop_strings', property: 'use_stop_strings', isCheckbox: true, isGlobalSetting: false, defaultValue: false },
337 { id: 'context_allow_jailbreak', property: 'allow_jailbreak', isCheckbox: true, isGlobalSetting: false, defaultValue: false },
338 { id: 'context_names_as_stop_strings', property: 'names_as_stop_strings', isCheckbox: true, isGlobalSetting: false, defaultValue: true },337 { id: 'context_names_as_stop_strings', property: 'names_as_stop_strings', isCheckbox: true, isGlobalSetting: false, defaultValue: true },
339338
340 // Existing power user settings339 // Existing power user settings
public/scripts/slash-commands.js+94 -6
@@ -2079,8 +2079,9 @@ export function initDefaultSlashCommands() {
2079 name: 'replace',2079 name: 'replace',
2080 aliases: ['re'],2080 aliases: ['re'],
2081 callback: (async ({ mode = 'literal', pattern, replacer = '' }, text) => {2081 callback: (async ({ mode = 'literal', pattern, replacer = '' }, text) => {
2082 if (pattern === '')2082 if (!pattern) {
2083 throw new Error('Argument of \'pattern=\' cannot be empty');2083 throw new Error('Argument of \'pattern=\' cannot be empty');
2084 }
2084 switch (mode) {2085 switch (mode) {
2085 case 'literal':2086 case 'literal':
2086 return text.replaceAll(pattern, replacer);2087 return text.replaceAll(pattern, replacer);
@@ -2123,11 +2124,98 @@ export function initDefaultSlashCommands() {
2123 </div>2124 </div>
2124 <div>2125 <div>
2125 <strong>Example:</strong>2126 <strong>Example:</strong>
2126 <pre>/let x Blue house and blue car || </pre>2127 <pre><code class="language-stscript">/let x Blue house and blue car || </code></pre>
2127 <pre>/replace pattern="blue" {{var::x}} | /echo |/# Blue house and car ||</pre>2128 <pre><code class="language-stscript">/replace pattern="blue" {{var::x}} | /echo |/# Blue house and car ||</code></pre>
2128 <pre>/replace pattern="blue" replacer="red" {{var::x}} | /echo |/# Blue house and red car ||</pre>2129 <pre><code class="language-stscript">/replace pattern="blue" replacer="red" {{var::x}} | /echo |/# Blue house and red car ||</code></pre>
2129 <pre>/replace mode=regex pattern="/blue/i" replacer="red" {{var::x}} | /echo |/# red house and blue car ||</pre>2130 <pre><code class="language-stscript">/replace mode=regex pattern="/blue/i" replacer="red" {{var::x}} | /echo |/# red house and blue car ||</code></pre>
2130 <pre>/replace mode=regex pattern="/blue/gi" replacer="red" {{var::x}} | /echo |/# red house and red car ||</pre>2131 <pre><code class="language-stscript">/replace mode=regex pattern="/blue/gi" replacer="red" {{var::x}} | /echo |/# red house and red car ||</code></pre>
2132 </div>
2133 `,
2134 }));
2135 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
2136 name: 'test',
2137 callback: (({ pattern }, text) => {
2138 if (!pattern) {
2139 throw new Error('Argument of \'pattern=\' cannot be empty');
2140 }
2141 const re = regexFromString(pattern.toString());
2142 if (!re) {
2143 throw new Error('The value of \'pattern\' argument is not a valid regular expression.');
2144 }
2145 return JSON.stringify(re.test(text.toString()));
2146 }),
2147 returns: 'true | false',
2148 namedArgumentList: [
2149 new SlashCommandNamedArgument(
2150 'pattern', 'pattern to find', [ARGUMENT_TYPE.STRING], true, false,
2151 ),
2152 ],
2153 unnamedArgumentList: [
2154 new SlashCommandArgument(
2155 'text to test', [ARGUMENT_TYPE.STRING], true, false,
2156 ),
2157 ],
2158 helpString: `
2159 <div>
2160 Tests text for a regular expression match.
2161 </div>
2162 <div>
2163 Returns <code>true</code> if the match is found, <code>false</code> otherwise.
2164 </div>
2165 <div>
2166 <strong>Example:</strong>
2167 <pre><code class="language-stscript">/let x Blue house and green car ||</code></pre>
2168 <pre><code class="language-stscript">/test pattern="green" {{var::x}} | /echo |/# true ||</code></pre>
2169 <pre><code class="language-stscript">/test pattern="blue" {{var::x}} | /echo |/# false ||</code></pre>
2170 <pre><code class="language-stscript">/test pattern="/blue/i" {{var::x}} | /echo |/# true ||</code></pre>
2171 </div>
2172 `,
2173 }));
2174 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
2175 name: 'match',
2176 callback: (({ pattern }, text) => {
2177 if (!pattern) {
2178 throw new Error('Argument of \'pattern=\' cannot be empty');
2179 }
2180 const re = regexFromString(pattern.toString());
2181 if (!re) {
2182 throw new Error('The value of \'pattern\' argument is not a valid regular expression.');
2183 }
2184 if (re.flags.includes('g')) {
2185 return JSON.stringify([...text.toString().matchAll(re)]);
2186 } else {
2187 const match = text.toString().match(re);
2188 return match ? JSON.stringify(match) : '';
2189 }
2190 }),
2191 returns: 'group array for each match',
2192 namedArgumentList: [
2193 new SlashCommandNamedArgument(
2194 'pattern', 'pattern to find', [ARGUMENT_TYPE.STRING], true, false,
2195 ),
2196 ],
2197 unnamedArgumentList: [
2198 new SlashCommandArgument(
2199 'text to match against', [ARGUMENT_TYPE.STRING], true, false,
2200 ),
2201 ],
2202 helpString: `
2203 <div>
2204 Retrieves regular expression matches in the given text
2205 </div>
2206 <div>
2207 Returns an array of groups (with the first group being the full match). If the regex contains the global flag (i.e. <code>/g</code>),
2208 multiple nested arrays are returned for each match. If the regex is global, returns <code>[]</code> if no matches are found,
2209 otherwise it returns an empty string.
2210 </div>
2211 <div>
2212 <strong>Example:</strong>
2213 <pre><code class="language-stscript">/let x color_green green lamp color_blue ||</code></pre>
2214 <pre><code class="language-stscript">/match pattern="green" {{var::x}} | /echo |/# [ "green" ] ||</code></pre>
2215 <pre><code class="language-stscript">/match pattern="color_(\\w+)" {{var::x}} | /echo |/# [ "color_green", "green" ] ||</code></pre>
2216 <pre><code class="language-stscript">/match pattern="/color_(\\w+)/g" {{var::x}} | /echo |/# [ [ "color_green", "green" ], [ "color_blue", "blue" ] ] ||</code></pre>
2217 <pre><code class="language-stscript">/match pattern="orange" {{var::x}} | /echo |/# ||</code></pre>
2218 <pre><code class="language-stscript">/match pattern="/orange/g" {{var::x}} | /echo |/# [] ||</code></pre>
2131 </div>2219 </div>
2132 `,2220 `,
2133 }));2221 }));
public/scripts/sysprompt.js+15 -3
@@ -17,6 +17,7 @@ export let system_prompts = [];
17const $enabled = $('#sysprompt_enabled');17const $enabled = $('#sysprompt_enabled');
18const $select = $('#sysprompt_select');18const $select = $('#sysprompt_select');
19const $content = $('#sysprompt_content');19const $content = $('#sysprompt_content');
20const $postHistory = $('#sysprompt_post_history');
20const $contentBlock = $('#SystemPromptBlock');21const $contentBlock = $('#SystemPromptBlock');
2122
22async function migrateSystemPromptFromInstructMode() {23async function migrateSystemPromptFromInstructMode() {
@@ -25,6 +26,7 @@ async function migrateSystemPromptFromInstructMode() {
25 delete power_user.instruct.system_prompt;26 delete power_user.instruct.system_prompt;
26 power_user.sysprompt.enabled = power_user.instruct.enabled;27 power_user.sysprompt.enabled = power_user.instruct.enabled;
27 power_user.sysprompt.content = prompt;28 power_user.sysprompt.content = prompt;
29 power_user.sysprompt.post_history = '';
2830
29 const existingPromptName = system_prompts.find(x => x.content === prompt)?.name;31 const existingPromptName = system_prompts.find(x => x.content === prompt)?.name;
3032
@@ -59,7 +61,8 @@ export async function loadSystemPrompts(data) {
5961
60 $enabled.prop('checked', power_user.sysprompt.enabled);62 $enabled.prop('checked', power_user.sysprompt.enabled);
61 $select.val(power_user.sysprompt.name);63 $select.val(power_user.sysprompt.name);
62 $content.val(power_user.sysprompt.content);64 $content.val(power_user.sysprompt.content || '');
65 $postHistory.val(power_user.sysprompt.post_history || '');
63 if (!CSS.supports('field-sizing', 'content')) {66 if (!CSS.supports('field-sizing', 'content')) {
64 await resetScrollHeight($content);67 await resetScrollHeight($content);
65 }68 }
@@ -165,13 +168,17 @@ export function initSystemPrompts() {
165 const name = String($(this).val());168 const name = String($(this).val());
166 const prompt = system_prompts.find(p => p.name === name);169 const prompt = system_prompts.find(p => p.name === name);
167 if (prompt) {170 if (prompt) {
168 $content.val(prompt.content);171 $content.val(prompt.content || '');
172 $postHistory.val(prompt.post_history || '');
173
169 if (!CSS.supports('field-sizing', 'content')) {174 if (!CSS.supports('field-sizing', 'content')) {
170 await resetScrollHeight($content);175 await resetScrollHeight($content);
176 await resetScrollHeight($postHistory);
171 }177 }
172178
173 power_user.sysprompt.name = name;179 power_user.sysprompt.name = name;
174 power_user.sysprompt.content = prompt.content;180 power_user.sysprompt.content = prompt.content || '';
181 power_user.sysprompt.post_history = prompt.post_history || '';
175 }182 }
176 saveSettingsDebounced();183 saveSettingsDebounced();
177 });184 });
@@ -181,6 +188,11 @@ export function initSystemPrompts() {
181 saveSettingsDebounced();188 saveSettingsDebounced();
182 });189 });
183190
191 $postHistory.on('input', function () {
192 power_user.sysprompt.post_history = String($(this).val());
193 saveSettingsDebounced();
194 });
195
184 SlashCommandParser.addCommandObject(SlashCommand.fromProps({196 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
185 name: 'sysprompt',197 name: 'sysprompt',
186 aliases: ['system-prompt'],198 aliases: ['system-prompt'],
public/scripts/textgen-settings.js+1 -1
@@ -1146,7 +1146,7 @@ function tryParseStreamingError(response, decoded) {
1146 // No JSON. Do nothing.1146 // No JSON. Do nothing.
1147 }1147 }
11481148
1149 const message = data?.error?.message || data?.message || data?.detail;1149 const message = data?.error?.message || data?.error || data?.message || data?.detail;
11501150
1151 if (message) {1151 if (message) {
1152 toastr.error(message, 'Text Completion API');1152 toastr.error(message, 'Text Completion API');