From 87e562b75251bd786e6060048b47d501d08506a9 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:26:44 +0300 Subject: [PATCH] Allow "none" position for extension prompt injects --- public/css/extensions-panel.css | 3 ++- public/script.js | 1 + public/scripts/extensions/memory/index.js | 15 +++++++++++++-- public/scripts/extensions/memory/settings.html | 9 +++++++++ public/scripts/slash-commands.js | 5 +++-- 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/public/css/extensions-panel.css b/public/css/extensions-panel.css index 2daff5749..da005bd70 100644 --- a/public/css/extensions-panel.css +++ b/public/css/extensions-panel.css @@ -7,7 +7,8 @@ background-color: green; } -.extensions_block input[type="checkbox"] { +.extensions_block input[type="checkbox"], +.extensions_block input[type="radio"] { margin-left: 10px; margin-right: 10px; } diff --git a/public/script.js b/public/script.js index 05ee60f50..3e4101485 100644 --- a/public/script.js +++ b/public/script.js @@ -570,6 +570,7 @@ export const system_message_types = { * @enum {number} Extension prompt types */ export const extension_prompt_types = { + NONE: -1, IN_PROMPT: 0, IN_CHAT: 1, BEFORE_PROMPT: 2, diff --git a/public/scripts/extensions/memory/index.js b/public/scripts/extensions/memory/index.js index bc65c8e4a..5829ead28 100644 --- a/public/scripts/extensions/memory/index.js +++ b/public/scripts/extensions/memory/index.js @@ -14,6 +14,7 @@ import { substituteParamsExtended, generateRaw, getMaxContextSize, + setExtensionPrompt, } from '../../../script.js'; import { is_group_generating, selected_group } from '../../group-chats.js'; import { loadMovingUIState } from '../../power-user.js'; @@ -73,6 +74,7 @@ const defaultSettings = { template: defaultTemplate, position: extension_prompt_types.IN_PROMPT, role: extension_prompt_roles.SYSTEM, + scan: false, depth: 2, promptWords: 200, promptMinWords: 25, @@ -122,6 +124,7 @@ function loadSettings() { $(`input[name="memory_prompt_builder"][value="${extension_settings.memory.prompt_builder}"]`).prop('checked', true).trigger('input'); $('#memory_override_response_length').val(extension_settings.memory.overrideResponseLength).trigger('input'); $('#memory_max_messages_per_request').val(extension_settings.memory.maxMessagesPerRequest).trigger('input'); + $('#memory_include_wi_scan').prop('checked', extension_settings.memory.scan).trigger('input'); switchSourceControls(extension_settings.memory.source); } @@ -279,6 +282,13 @@ function onMemoryPositionChange(e) { saveSettingsDebounced(); } +function onMemoryIncludeWIScanInput() { + const value = !!$(this).prop('checked'); + extension_settings.memory.scan = value; + reinsertMemory(); + saveSettingsDebounced(); +} + function onMemoryPromptWordsForceInput() { const value = $(this).val(); extension_settings.memory.promptForceWords = Number(value); @@ -800,8 +810,7 @@ function reinsertMemory() { * @param {number|null} index Index of the chat message to save the summary to. If null, the pre-last message is used. */ function setMemoryContext(value, saveToMessage, index = null) { - const context = getContext(); - context.setExtensionPrompt(MODULE_NAME, formatMemoryValue(value), extension_settings.memory.position, extension_settings.memory.depth, false, extension_settings.memory.role); + setExtensionPrompt(MODULE_NAME, formatMemoryValue(value), extension_settings.memory.position, extension_settings.memory.depth, extension_settings.memory.scan, extension_settings.memory.role); $('#memory_contents').val(value); const summaryLog = value @@ -809,6 +818,7 @@ function setMemoryContext(value, saveToMessage, index = null) { : 'Summary has no content'; console.debug(summaryLog); + const context = getContext(); if (saveToMessage && context.chat.length) { const idx = index ?? context.chat.length - 2; const mes = context.chat[idx < 0 ? 0 : idx]; @@ -894,6 +904,7 @@ function setupListeners() { $('#memory_prompt_words_auto').off('click').on('click', onPromptForceWordsAutoClick); $('#memory_override_response_length').off('click').on('input', onOverrideResponseLengthInput); $('#memory_max_messages_per_request').off('click').on('input', onMaxMessagesPerRequestInput); + $('#memory_include_wi_scan').off('input').on('input', onMemoryIncludeWIScanInput); $('#summarySettingsBlockToggle').off('click').on('click', function () { console.log('saw settings button click'); $('#summarySettingsBlock').slideToggle(200, 'swing'); //toggleClass("hidden"); diff --git a/public/scripts/extensions/memory/settings.html b/public/scripts/extensions/memory/settings.html index 82377fd55..f72a7f7b5 100644 --- a/public/scripts/extensions/memory/settings.html +++ b/public/scripts/extensions/memory/settings.html @@ -109,7 +109,16 @@ +