diff --git a/public/script.js b/public/script.js index a87e3f104..7d45e9e8d 100644 --- a/public/script.js +++ b/public/script.js @@ -2484,9 +2484,10 @@ function getExtensionPromptByName(moduleName) { * @param {number} [depth] Depth of the prompt * @param {string} [separator] Separator for joining multiple prompts * @param {number} [role] Role of the prompt + * @param {boolean} [wrap] Wrap start and end with a separator * @returns {string} Extension prompt */ -function getExtensionPrompt(position = extension_prompt_types.IN_PROMPT, depth = undefined, separator = '\n', role = undefined) { +function getExtensionPrompt(position = extension_prompt_types.IN_PROMPT, depth = undefined, separator = '\n', role = undefined, wrap = true) { let extension_prompt = Object.keys(extension_prompts) .sort() .map((x) => extension_prompts[x]) @@ -2495,10 +2496,10 @@ function getExtensionPrompt(position = extension_prompt_types.IN_PROMPT, depth = .filter(x => role === undefined || x.role === undefined || x.role === role) .map(x => x.value.trim()) .join(separator); - if (extension_prompt.length && !extension_prompt.startsWith(separator)) { + if (wrap && extension_prompt.length && !extension_prompt.startsWith(separator)) { extension_prompt = separator + extension_prompt; } - if (extension_prompt.length && !extension_prompt.endsWith(separator)) { + if (wrap && extension_prompt.length && !extension_prompt.endsWith(separator)) { extension_prompt = extension_prompt + separator; } if (extension_prompt.length) { @@ -3988,10 +3989,10 @@ function doChatInject(messages, isContinue) { }; const roleMessages = []; const separator = '\n'; + const wrap = false; for (const role of roles) { - // Get extension prompt - const extensionPrompt = String(getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, role)).trimStart(); + const extensionPrompt = String(getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, role, wrap)).trimStart(); const isNarrator = role === extension_prompt_roles.SYSTEM; const isUser = role === extension_prompt_roles.USER; const name = names[role]; @@ -4003,7 +4004,7 @@ function doChatInject(messages, isContinue) { mes: extensionPrompt, extra: { type: isNarrator ? system_message_types.NARRATOR : null, - } + }, }); } } diff --git a/public/scripts/openai.js b/public/scripts/openai.js index f053e91fc..5acecfe7d 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -671,12 +671,13 @@ function populationInjectionPrompts(prompts, messages) { const roles = ['system', 'user', 'assistant']; const roleMessages = []; const separator = '\n'; + const wrap = false; for (const role of roles) { // Get prompts for current role const rolePrompts = depthPrompts.filter(prompt => prompt.role === role).map(x => x.content).join(separator); // Get extension prompt - const extensionPrompt = getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, roleTypes[role]); + const extensionPrompt = getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, roleTypes[role], wrap); const jointPrompt = [rolePrompts, extensionPrompt].filter(x => x).map(x => x.trim()).join(separator);