Allow displaying unreferenced macro in message texts

This commit is contained in:
Cohee 2023-12-21 20:49:03 +02:00
parent 39e0b0f5cb
commit a85a6cf606
3 changed files with 11 additions and 12 deletions

View File

@ -1540,7 +1540,6 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
mes = mes.replaceAll('\\begin{align*}', '$$');
mes = mes.replaceAll('\\end{align*}', '$$');
mes = converter.makeHtml(mes);
mes = replaceBiasMarkup(mes);
mes = mes.replace(/<code(.*)>[\s\S]*?<\/code>/g, function (match) {
// Firefox creates extra newlines from <br>s in code blocks, so we replace them before converting newlines to <br>s.
@ -3070,7 +3069,7 @@ async function Generate(type, { automatic_trigger, force_name2, quiet_prompt, qu
//for normal messages sent from user..
if ((textareaText != '' || hasPendingFileAttachment()) && !automatic_trigger && type !== 'quiet' && !dryRun) {
// If user message contains no text other than bias - send as a system message
if (messageBias && replaceBiasMarkup(textareaText).trim().length === 0) {
if (messageBias && !removeMacros(textareaText)) {
sendSystemMessage(system_message_types.GENERIC, ' ', { bias: messageBias });
}
else {
@ -4089,13 +4088,16 @@ function formatMessageHistoryItem(chatItem, isInstruct, forceOutputSequence) {
textResult = formatInstructModeChat(itemName, chatItem.mes, chatItem.is_user, isNarratorType, chatItem.force_avatar, name1, name2, forceOutputSequence);
}
textResult = replaceBiasMarkup(textResult);
return textResult;
}
export function replaceBiasMarkup(str) {
return (str ?? '').replace(/\{\{[\s\S]*?\}\}/gm, '');
/**
* Removes all {{macros}} from a string.
* @param {string} str String to remove macros from.
* @returns {string} String with macros removed.
*/
export function removeMacros(str) {
return (str ?? '').replace(/\{\{[\s\S]*?\}\}/gm, '').trim();
}
/**

View File

@ -21,7 +21,6 @@ import {
MAX_INJECTION_DEPTH,
name1,
name2,
replaceBiasMarkup,
replaceItemizedPromptText,
resultCheckStatus,
saveSettingsDebounced,
@ -441,8 +440,6 @@ function setOpenAIMessages(chat) {
content = `${chat[j].name}: ${content}`;
}
}
content = replaceBiasMarkup(content);
// remove caret return (waste of tokens)
content = content.replace(/\r/gm, '');

View File

@ -20,7 +20,7 @@ import {
main_api,
name1,
reloadCurrentChat,
replaceBiasMarkup,
removeMacros,
saveChatConditional,
sendMessageAsUser,
sendSystemMessage,
@ -1260,7 +1260,7 @@ export async function sendMessageAs(args, text) {
// Messages that do nothing but set bias will be hidden from the context
const bias = extractMessageBias(mesText);
const isSystem = replaceBiasMarkup(mesText).trim().length === 0;
const isSystem = bias && !removeMacros(mesText).length;
const character = characters.find(x => x.name === name);
let force_avatar, original_avatar;
@ -1313,7 +1313,7 @@ export async function sendNarratorMessage(args, text) {
const name = chat_metadata[NARRATOR_NAME_KEY] || NARRATOR_NAME_DEFAULT;
// Messages that do nothing but set bias will be hidden from the context
const bias = extractMessageBias(text);
const isSystem = replaceBiasMarkup(text).trim().length === 0;
const isSystem = bias && !removeMacros(text).length;
const message = {
name: name,