From 98092222fdf63fed3c22159d1ebe9e7e94dbec8f Mon Sep 17 00:00:00 2001
From: breathingmanually <136247862+breathingmanually@users.noreply.github.com>
Date: Sun, 11 Jun 2023 11:41:39 -0300
Subject: [PATCH] Add preset setting to avoid sending empty messages
---
public/index.html | 13 +++++++++++++
public/script.js | 4 ++++
public/scripts/openai.js | 11 +++++++++++
3 files changed, 28 insertions(+)
diff --git a/public/index.html b/public/index.html
index e05b56d82..416cebd48 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1017,6 +1017,19 @@
if you use quotes manually for speech.
+
+
+ Replace empty message
+
+
+
+ Send this text instead of nothing when the text box is empty.
+
+
+
+
+
+
diff --git a/public/script.js b/public/script.js
index 45d8f0ca0..a040adf17 100644
--- a/public/script.js
+++ b/public/script.js
@@ -1915,6 +1915,10 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
await sendMessageAsUser(textareaText, messageBias);
}
}
+ else if (textareaText == "" && !automatic_trigger && type !== 'quiet' && main_api == 'openai' && oai_settings.send_if_empty.trim().length > 0) {
+ await sendMessageAsUser(oai_settings.send_if_empty.trim(), messageBias);
+ }
+
////////////////////////////////////
const scenarioText = chat_metadata['scenario'] || characters[this_chid].scenario;
let charDescription = baseChatReplace(characters[this_chid].description.trim(), name1, name2);
diff --git a/public/scripts/openai.js b/public/scripts/openai.js
index f20dbd015..73fb8dade 100644
--- a/public/scripts/openai.js
+++ b/public/scripts/openai.js
@@ -111,6 +111,7 @@ const default_settings = {
nsfw_toggle: true,
enhance_definitions: false,
wrap_in_quotes: false,
+ send_if_empty: '',
nsfw_first: false,
main_prompt: default_main_prompt,
nsfw_prompt: default_nsfw_prompt,
@@ -143,6 +144,7 @@ const oai_settings = {
nsfw_toggle: true,
enhance_definitions: false,
wrap_in_quotes: false,
+ send_if_empty: '',
nsfw_first: false,
main_prompt: default_main_prompt,
nsfw_prompt: default_nsfw_prompt,
@@ -970,6 +972,7 @@ function loadOpenAISettings(data, settings) {
oai_settings.legacy_streaming = settings.legacy_streaming ?? default_settings.legacy_streaming;
oai_settings.max_context_unlocked = settings.max_context_unlocked ?? default_settings.max_context_unlocked;
oai_settings.nsfw_avoidance_prompt = settings.nsfw_avoidance_prompt ?? default_settings.nsfw_avoidance_prompt;
+ oai_settings.send_if_empty = settings.send_if_empty ?? default_settings.send_if_empty;
oai_settings.wi_format = settings.wi_format ?? default_settings.wi_format;
oai_settings.claude_model = settings.claude_model ?? default_settings.claude_model;
oai_settings.windowai_model = settings.windowai_model ?? default_settings.windowai_model;
@@ -1011,6 +1014,7 @@ function loadOpenAISettings(data, settings) {
$('#impersonation_prompt_textarea').val(oai_settings.impersonation_prompt);
$('#nsfw_avoidance_prompt_textarea').val(oai_settings.nsfw_avoidance_prompt);
$('#wi_format_textarea').val(oai_settings.wi_format);
+ $('#send_if_empty_textarea').val(oai_settings.send_if_empty);
$('#temp_openai').val(oai_settings.temp_openai);
$('#temp_counter_openai').text(Number(oai_settings.temp_openai).toFixed(2));
@@ -1150,6 +1154,7 @@ async function saveOpenAIPreset(name, settings) {
nsfw_toggle: settings.nsfw_toggle,
enhance_definitions: settings.enhance_definitions,
wrap_in_quotes: settings.wrap_in_quotes,
+ send_if_empty: settings.send_if_empty,
nsfw_first: settings.nsfw_first,
main_prompt: settings.main_prompt,
nsfw_prompt: settings.nsfw_prompt,
@@ -1427,6 +1432,7 @@ function onSettingsPresetChange() {
nsfw_toggle: ['#nsfw_toggle', 'nsfw_toggle', true],
enhance_definitions: ['#enhance_definitions', 'enhance_definitions', true],
wrap_in_quotes: ['#wrap_in_quotes', 'wrap_in_quotes', true],
+ send_if_empty: ['#send_if_empty_textarea', 'send_if_empty', false],
nsfw_first: ['#nsfw_first', 'nsfw_first', true],
jailbreak_system: ['#jailbreak_system', 'jailbreak_system', true],
main_prompt: ['#main_prompt_textarea', 'main_prompt', false],
@@ -1718,6 +1724,11 @@ $(document).ready(function () {
saveSettingsDebounced();
});
+ $("#send_if_empty_textarea").on('input', function () {
+ oai_settings.send_if_empty = $('#send_if_empty_textarea').val();
+ saveSettingsDebounced();
+ });
+
$('#nsfw_first').on('change', function () {
oai_settings.nsfw_first = !!$('#nsfw_first').prop('checked');
saveSettingsDebounced();