diff --git a/public/index.html b/public/index.html index f175bae71..b56802560 100644 --- a/public/index.html +++ b/public/index.html @@ -2145,6 +2145,14 @@ Match whole words + diff --git a/public/script.js b/public/script.js index 5edba339e..e5a76344b 100644 --- a/public/script.js +++ b/public/script.js @@ -26,6 +26,7 @@ import { getWorldInfoPrompt, setWorldInfoSettings, world_info_recursive, + world_info_overflow_alert, world_info_case_sensitive, world_info_match_whole_words, world_names, @@ -5077,6 +5078,7 @@ async function saveSettings(type) { world_info_depth: world_info_depth, world_info_budget: world_info_budget, world_info_recursive: world_info_recursive, + world_info_overflow_alert: world_info_overflow_alert, world_info_case_sensitive: world_info_case_sensitive, world_info_match_whole_words: world_info_match_whole_words, world_info_character_strategy: world_info_character_strategy, diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js index 0e4480023..1e41b51b7 100644 --- a/public/scripts/world-info.js +++ b/public/scripts/world-info.js @@ -10,6 +10,7 @@ export { world_info_budget, world_info_depth, world_info_recursive, + world_info_overflow_alert, world_info_case_sensitive, world_info_match_whole_words, world_info_character_strategy, @@ -32,6 +33,7 @@ let world_names; let world_info_depth = 2; let world_info_budget = 25; let world_info_recursive = false; +let world_info_overflow_alert = false; let world_info_case_sensitive = false; let world_info_match_whole_words = false; let world_info_character_strategy = world_info_insertion_strategy.character_first; @@ -70,6 +72,8 @@ function setWorldInfoSettings(settings, data) { world_info_budget = Number(settings.world_info_budget); if (settings.world_info_recursive !== undefined) world_info_recursive = Boolean(settings.world_info_recursive); + if (settings.world_info_overflow_alert !== undefined) + world_info_overflow_alert = Boolean(settings.world_info_overflow_alert); if (settings.world_info_case_sensitive !== undefined) world_info_case_sensitive = Boolean(settings.world_info_case_sensitive); if (settings.world_info_match_whole_words !== undefined) @@ -102,6 +106,7 @@ function setWorldInfoSettings(settings, data) { $("#world_info_budget").val(world_info_budget); $("#world_info_recursive").prop('checked', world_info_recursive); + $("#world_info_overflow_alert").prop('checked', world_info_overflow_alert); $("#world_info_case_sensitive").prop('checked', world_info_case_sensitive); $("#world_info_match_whole_words").prop('checked', world_info_match_whole_words); @@ -1020,6 +1025,10 @@ async function checkWorldInfo(chat, maxContext) { if (textToScanTokens + getTokenCount(newContent) >= budget) { console.debug(`WI budget reached, stopping`); + if (world_info_overflow_alert) { + console.log("Alerting"); + toastr.warning(`World info budget reached after ${count} entries.`, 'World Info'); + } needsToScan = false; break; } @@ -1501,6 +1510,11 @@ jQuery(() => { saveSettingsDebounced(); }); + $('#world_info_overflow_alert').on('change', function () { + world_info_overflow_alert = $(this).val(); + saveSettingsDebounced(); + }); + $('#world_button').on('click', async function () { const chid = $('#set_character_world').data('chid');