diff --git a/public/index.html b/public/index.html
index d79a81d92..185f96e75 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1851,6 +1851,19 @@
+
+
+ Start Reply With
+
+
+
+
+
+
Pygmalion Formatting
diff --git a/public/script.js b/public/script.js
index 898cffaa8..d7af2e276 100644
--- a/public/script.js
+++ b/public/script.js
@@ -1062,6 +1062,11 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
mes = '';
}
+ // Prompt bias replacement should be applied on the raw message
+ if (!power_user.show_user_prompt_bias && ch_name && !isUser && !isSystem) {
+ mes = mes.replaceAll(substituteParams(power_user.user_prompt_bias), "");
+ }
+
if (power_user.auto_fix_generated_markdown) {
mes = fixMarkdown(mes);
}
@@ -1122,7 +1127,6 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
//console.log('mes after removed ')
//console.log(mes)
} */
-
return mes;
}
@@ -2308,7 +2312,17 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
if (!mesSendString.endsWith('\n')) {
mesSendString += '\n';
}
- mesSendString += (`${name2}:${promptBias || ''}`);
+
+ let addedPromptBias = promptBias || substituteParams(power_user.user_prompt_bias) || '';
+
+ // Add a leading space to the prompt bias if applicable
+ if (addedPromptBias.length !== 0 && !addedPromptBias.startsWith(' ')) {
+ addedPromptBias = ` ${addedPromptBias}`
+ }
+
+ mesSendString += (`${name2}:${addedPromptBias}`);
+ } else if (power_user.user_prompt_bias) {
+ mesSendString += substituteParams(power_user.user_prompt_bias);
}
return mesSendString;
@@ -3309,32 +3323,29 @@ function extractTitleFromData(data) {
}
function extractMessageFromData(data) {
- let getMessage = "";
-
- if (main_api == 'kobold') {
- getMessage = data.results[0].text;
+ switch (main_api) {
+ case 'kobold':
+ return data.results[0].text;
+ case 'koboldhorde':
+ return data.text;
+ case 'textgenerationwebui':
+ return data.results[0].text;
+ case 'novel':
+ return data.output;
+ case 'openai':
+ case 'poe':
+ return data;
+ default:
+ return ''
}
-
- if (main_api == 'koboldhorde') {
- getMessage = data.text;
- }
-
- if (main_api == 'textgenerationwebui') {
- getMessage = data.results[0].text;
- }
-
- if (main_api == 'novel') {
- getMessage = data.output;
- }
-
- if (main_api == 'openai' || main_api == 'poe') {
- getMessage = data;
- }
-
- return getMessage;
}
function cleanUpMessage(getMessage, isImpersonate, displayIncompleteSentences = false) {
+ // Append the user bias first before trimming anything else
+ if (power_user.user_prompt_bias && power_user.user_prompt_bias.length !== 0) {
+ getMessage = substituteParams(power_user.user_prompt_bias) + getMessage;
+ }
+
if (!displayIncompleteSentences && power_user.trim_sentences) {
getMessage = end_trim_to_sentence(getMessage, power_user.include_newline);
}
diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js
index dcc355be5..d13f58374 100644
--- a/public/scripts/power-user.js
+++ b/public/scripts/power-user.js
@@ -101,6 +101,8 @@ let power_user = {
trim_sentences: false,
include_newline: false,
always_force_name2: false,
+ user_prompt_bias: '',
+ show_user_prompt_bias: true,
multigen: false,
multigen_first_chunk: 50,
multigen_next_chunks: 30,
@@ -598,6 +600,8 @@ function loadPowerUserSettings(settings, data) {
$("#waifuMode").prop("checked", power_user.waifuMode);
$("#movingUImode").prop("checked", power_user.movingUI);
$("#noShadowsmode").prop("checked", power_user.noShadows);
+ $("#start_reply_with").val(power_user.user_prompt_bias);
+ $("#chat-show-reply-prefix-checkbox").prop("checked", power_user.show_user_prompt_bias);
$("#multigen").prop("checked", power_user.multigen);
$("#multigen_first_chunk").val(power_user.multigen_first_chunk);
$("#multigen_next_chunks").val(power_user.multigen_next_chunks);
@@ -1074,6 +1078,17 @@ $(document).ready(() => {
reloadMarkdownProcessor(power_user.render_formulas);
});
+ $("#start_reply_with").on('input', function() {
+ power_user.user_prompt_bias = $(this).val();
+ saveSettingsDebounced();
+ });
+
+ $("#chat-show-reply-prefix-checkbox").change(function () {
+ power_user.show_user_prompt_bias = !!$(this).prop("checked");
+ reloadCurrentChat();
+ saveSettingsDebounced();
+ })
+
$("#multigen").change(function () {
power_user.multigen = $(this).prop("checked");
saveSettingsDebounced();