From 12740134e6d3066e9a5af28ebe6a7917b802e7b0 Mon Sep 17 00:00:00 2001 From: MDude Date: Sun, 30 Apr 2023 01:15:39 -0500 Subject: [PATCH 1/2] Avoid memory on most recent chat --- public/scripts/extensions/memory/index.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/public/scripts/extensions/memory/index.js b/public/scripts/extensions/memory/index.js index 18b1074d5..96399d177 100644 --- a/public/scripts/extensions/memory/index.js +++ b/public/scripts/extensions/memory/index.js @@ -119,6 +119,7 @@ function getLatestMemoryFromChat(chat) { } const reversedChat = chat.slice().reverse(); + reversedChat.shift(); for (let mes of reversedChat) { if (mes.extra && mes.extra.memory) { return mes.extra.memory; @@ -194,7 +195,8 @@ async function summarizeChat(context) { const chat = context.chat; const longMemory = getLatestMemoryFromChat(chat); const reversedChat = chat.slice().reverse(); - const preSummaryLastMessage = getStringHash(chat.length ? chat[chat.length - 1] : ''); + reversedChat.shift(); + const preSummaryLastMessage = getStringHash(reversedChat.length ? reversedChat[reversedChat.length - 1] : ''); let memoryBuffer = []; for (let mes of reversedChat) { @@ -254,7 +256,7 @@ async function summarizeChat(context) { const summary = data.summary; const newContext = getContext(); - const postSummaryLastMessage = getStringHash(newContext.chat.length ? newContext.chat[newContext.chat.length - 1] : ''); + const postSummaryLastMessage = getStringHash(newContext.chat.length ? newContext.chat[newContext.chat.length - 2] : ''); // something changed during summarization request if (postSummaryLastMessage !== preSummaryLastMessage @@ -280,6 +282,7 @@ function onMemoryRestoreClick() { const context = getContext(); const content = $('#memory_contents').val(); const reversedChat = context.chat.slice().reverse(); + reversedChat.shift(); for (let mes of reversedChat) { if (mes.extra && mes.extra.memory == content) { @@ -302,8 +305,8 @@ function setMemoryContext(value, saveToMessage) { context.setExtensionPrompt(MODULE_NAME, formatMemoryValue(value), extension_prompt_types.AFTER_SCENARIO); $('#memory_contents').val(value); - if (saveToMessage && context.chat.length) { - const mes = context.chat[context.chat.length - 1]; + if (saveToMessage && context.chat.length > 1) { + const mes = context.chat[context.chat.length - 2]; if (!mes.extra) { mes.extra = {}; From 336f0d3fd084ca44f16c2c57864484e34a4675ef Mon Sep 17 00:00:00 2001 From: MDude Date: Sun, 30 Apr 2023 01:39:29 -0500 Subject: [PATCH 2/2] Store memory on most recent, if only one message --- public/scripts/extensions/memory/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/scripts/extensions/memory/index.js b/public/scripts/extensions/memory/index.js index 96399d177..0b3e1a38e 100644 --- a/public/scripts/extensions/memory/index.js +++ b/public/scripts/extensions/memory/index.js @@ -305,8 +305,9 @@ function setMemoryContext(value, saveToMessage) { context.setExtensionPrompt(MODULE_NAME, formatMemoryValue(value), extension_prompt_types.AFTER_SCENARIO); $('#memory_contents').val(value); - if (saveToMessage && context.chat.length > 1) { - const mes = context.chat[context.chat.length - 2]; + if (saveToMessage && context.chat.length) { + const idx = context.chat.length - 2; + const mes = context.chat[idx < 0 ? 0 : idx]; if (!mes.extra) { mes.extra = {};