diff --git a/package-lock.json b/package-lock.json index 02b02f9e6..1f906ae8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sillytavern", - "version": "1.6.6", + "version": "1.6.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sillytavern", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "dependencies": { "@dqbd/tiktoken": "^1.0.2", diff --git a/package.json b/package.json index 7bb566e0c..a8b8d40c3 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "type": "git", "url": "https://github.com/SillyTavern/SillyTavern.git" }, - "version": "1.6.6", + "version": "1.6.7", "scripts": { "start": "node server.js", "pkg": "pkg --compress Gzip --no-bytecode --public ." diff --git a/public/script.js b/public/script.js index ad48923fa..c873505a2 100644 --- a/public/script.js +++ b/public/script.js @@ -1392,10 +1392,10 @@ function getStoppingStrings(isImpersonate, addSpace) { if (power_user.instruct.enabled) { if (power_user.instruct.input_sequence) { - result.push(wrap(power_user.instruct.input_sequence)); + result.push(substituteParams(wrap(power_user.instruct.input_sequence), name1, name2)); } if (power_user.instruct.output_sequence) { - result.push(wrap(power_user.instruct.output_sequence)); + result.push(substituteParams(wrap(power_user.instruct.output_sequence), name1, name2)); } } @@ -1809,7 +1809,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject, const magName = isImpersonate ? (is_pygmalion ? 'You' : name1) : name2; if (isInstruct) { - message_already_generated = formatInstructModePrompt(magName, isImpersonate); + message_already_generated = formatInstructModePrompt(magName, isImpersonate, false, name1, name2); } else { message_already_generated = `${magName}: `; } @@ -2152,14 +2152,14 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject, // Add quiet generation prompt at depth 0 if (quiet_prompt && quiet_prompt.length) { const name = is_pygmalion ? 'You' : name1; - const quietAppend = isInstruct ? formatInstructModeChat(name, quiet_prompt, false, true, false) : `\n${name}: ${quiet_prompt}`; + const quietAppend = isInstruct ? formatInstructModeChat(name, quiet_prompt, false, true, false, name1, name2) : `\n${name}: ${quiet_prompt}`; mesSendString += quietAppend; } // Get instruct mode line if (isInstruct && tokens_already_generated === 0) { const name = isImpersonate ? (is_pygmalion ? 'You' : name1) : name2; - mesSendString += formatInstructModePrompt(name, isImpersonate, promptBias); + mesSendString += formatInstructModePrompt(name, isImpersonate, promptBias, name1, name2); } // Get non-instruct impersonation line @@ -2575,7 +2575,7 @@ function formatMessageHistoryItem(chatItem, isInstruct) { let textResult = shouldPrependName ? `${itemName}: ${chatItem.mes}\n` : `${chatItem.mes}\n`; if (isInstruct) { - textResult = formatInstructModeChat(itemName, chatItem.mes, chatItem.is_user, isNarratorType, chatItem.force_avatar); + textResult = formatInstructModeChat(itemName, chatItem.mes, chatItem.is_user, isNarratorType, chatItem.force_avatar, name1, name2); } textResult = replaceBiasMarkup(textResult); diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js index 3b81f5525..376136782 100644 --- a/public/scripts/power-user.js +++ b/public/scripts/power-user.js @@ -649,9 +649,14 @@ function loadInstructMode() { }); } -export function formatInstructModeChat(name, mes, isUser, isNarrator, forceAvatar) { +export function formatInstructModeChat(name, mes, isUser, isNarrator, forceAvatar, name1, name2) { const includeNames = isNarrator ? false : (power_user.instruct.names || !!selected_group || !!forceAvatar); - const sequence = (isUser || isNarrator) ? power_user.instruct.input_sequence : power_user.instruct.output_sequence; + const sequence = substituteParams( + (isUser || isNarrator) ? power_user.instruct.input_sequence : power_user.instruct.output_sequence, + name1, + name2 + ); + const separator = power_user.instruct.wrap ? '\n' : ''; const separatorSequence = power_user.instruct.separator_sequence && !isUser ? power_user.instruct.separator_sequence @@ -672,9 +677,14 @@ export function formatInstructStoryString(story, systemPrompt) { return text; } -export function formatInstructModePrompt(name, isImpersonate, promptBias) { +export function formatInstructModePrompt(name, isImpersonate, promptBias, name1, name2) { const includeNames = power_user.instruct.names || !!selected_group; - const sequence = isImpersonate ? power_user.instruct.input_sequence : power_user.instruct.output_sequence; + const sequence = substituteParams( + isImpersonate ? power_user.instruct.input_sequence : power_user.instruct.output_sequence, + name1, + name2 + ); + const separator = power_user.instruct.wrap ? '\n' : ''; let text = includeNames ? (separator + sequence + separator + `${name}:`) : (separator + sequence);