From b1254fa2ab25a43b63cb339f3d16558b208aeb85 Mon Sep 17 00:00:00 2001 From: maver Date: Thu, 10 Aug 2023 19:56:18 +0200 Subject: [PATCH] Copy migrated preset into loaded presets Since this only is populated once during page load --- public/script.js | 4 ++-- public/scripts/PromptManager.js | 39 +++++++++++---------------------- public/scripts/openai.js | 6 +++-- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/public/script.js b/public/script.js index f8b00d02e..9a439be6b 100644 --- a/public/script.js +++ b/public/script.js @@ -542,7 +542,7 @@ this }; // Register configuration migrations -registerPromptManagerMigration(saveSettings); +registerPromptManagerMigration(); $(document).ajaxError(function myErrorHandler(_, xhr) { if (xhr.status == 403) { @@ -5089,7 +5089,7 @@ async function getSettings(type) { $("#your_name").val(name1); } - // Allow subscribers to mutate settings before applying any modifiers + // Allow subscribers to mutate settings eventSource.emit(event_types.SETTINGS_LOADED_BEFORE, settings); //Load KoboldAI settings diff --git a/public/scripts/PromptManager.js b/public/scripts/PromptManager.js index 9dd5b4695..405d60c4a 100644 --- a/public/scripts/PromptManager.js +++ b/public/scripts/PromptManager.js @@ -5,45 +5,32 @@ import {power_user} from "./power-user.js"; /** * Register migrations for the prompt manager when settings are loaded or an Open AI preset is loaded. */ -const registerPromptManagerMigration = (saveSettingsCallback) => { - const migrate = (settings, preset) => { - // If any of the specified settings exist, run the migration +const registerPromptManagerMigration = () => { + const migrate = (settings) => { + if (settings.main_prompt || settings.nsfw_prompt || settings.jailbreak_prompt) { + console.log('Running prompt manager configuration migration'); if (settings.prompts === undefined || settings.prompts.length === 0) settings.prompts = chatCompletionDefaultPrompts.prompts; const findPrompt = (identifier) => settings.prompts.find(prompt => identifier === prompt.identifier); - if (preset.main_prompt) { - findPrompt('main').content = preset.main_prompt + if (settings.main_prompt) { + findPrompt('main').content = settings.main_prompt delete settings.main_prompt; } - if (preset.nsfw_prompt) { - findPrompt('nsfw').content = preset.nsfw_prompt + if (settings.nsfw_prompt) { + findPrompt('nsfw').content = settings.nsfw_prompt delete settings.nsfw_prompt; } - if (preset.jailbreak_prompt) { - findPrompt('jailbreak').content = preset.jailbreak_prompt + if (settings.jailbreak_prompt) { + findPrompt('jailbreak').content = settings.jailbreak_prompt delete settings.jailbreak_prompt; } + } }; - const migrateSettings = (settings) => { - if (settings.main_prompt || settings.nsfw_prompt || settings.jailbreak_prompt) { - console.log(`Migrating configuration`); - migrate(settings, settings); - } - } - - const migratePreset = (event) => { - if (event.preset.main_prompt || event.preset.nsfw_prompt || event.preset.jailbreak_prompt) { - console.log(`Migrating preset ${event.presetName}`); - migrate(event.settings, event.preset); - event.callback(event.presetName, event.settings, false); - } - } - - eventSource.on(event_types.SETTINGS_LOADED_BEFORE, settings => migrateSettings(settings)); - eventSource.on(event_types.OAI_PRESET_CHANGED, settings => migratePreset(settings)); + eventSource.on(event_types.SETTINGS_LOADED_BEFORE, settings => migrate(settings)); + eventSource.on(event_types.OAI_PRESET_CHANGED, event => migrate(event.preset)); } /** diff --git a/public/scripts/openai.js b/public/scripts/openai.js index 0e0fd6c0a..b58d26114 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -2358,6 +2358,10 @@ function onSettingsPresetChange() { oai_settings.preset_settings_openai = presetName; const preset = openai_settings[openai_setting_names[oai_settings.preset_settings_openai]]; + eventSource.emit(event_types.OAI_PRESET_CHANGED, {preset: preset, settings: oai_settings}) + .then(() => saveOpenAIPreset(presetName, preset, false) + .then(() => openai_settings[openai_setting_names[oai_settings.preset_settings_openai]] = preset)); + const updateInput = (selector, value) => $(selector).val(value).trigger('input'); const updateCheckbox = (selector, value) => $(selector).prop('checked', value).trigger('input'); @@ -2413,8 +2417,6 @@ function onSettingsPresetChange() { $(`#chat_completion_source`).trigger('change'); $(`#openai_logit_bias_preset`).trigger('change'); - eventSource.emit(event_types.OAI_PRESET_CHANGED, {preset: preset, settings: oai_settings, presetName: presetName, callback: saveOpenAIPreset}); - saveSettingsDebounced(); }