Add quick edit drawer and fields for main and jailbreak
This commit is contained in:
parent
bd3136e114
commit
1b7a1cbc4a
|
@ -1289,9 +1289,29 @@
|
||||||
<span data-i18n="May help the model to understand context. Names must only contain letters or numbers.">Helps the model to associate messages in group chats. Names must only contain letters or numbers without whitespaces.</span>
|
<span data-i18n="May help the model to understand context. Names must only contain letters or numbers.">Helps the model to associate messages in group chats. Names must only contain letters or numbers without whitespaces.</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="range-block m-t-1 m-b-1">
|
<div class="range-block m-b-1">
|
||||||
<div id="completion_prompt_manager"></div>
|
<div id="completion_prompt_manager"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="inline-drawer m-t-1 m-b-1 wide100p">
|
||||||
|
<div class="inline-drawer-toggle inline-drawer-header">
|
||||||
|
<b>Quick Edit</b>
|
||||||
|
<div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inline-drawer-content">
|
||||||
|
<div class="range-block m-t-1">
|
||||||
|
<div class="justifyLeft" data-i18n="Main">Main</div>
|
||||||
|
<div class="wide100p">
|
||||||
|
<textarea id="main_prompt_quick_edit_textarea" class="text_pole textarea_compact" name="impersonation_prompt" rows="3" placeholder=""></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="range-block m-t-1">
|
||||||
|
<div class="justifyLeft" data-i18n="Jailbreak">Jailbreak</div>
|
||||||
|
<div class="wide100p">
|
||||||
|
<textarea id="jailbreak_prompt_quick_edit_textarea" class="text_pole textarea_compact" rows="3" placeholder=""></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="inline-drawer wide100p">
|
<div class="inline-drawer wide100p">
|
||||||
<div class="inline-drawer-toggle inline-drawer-header">
|
<div class="inline-drawer-toggle inline-drawer-header">
|
||||||
<b>Utility Prompts</b>
|
<b>Utility Prompts</b>
|
||||||
|
|
|
@ -300,6 +300,38 @@ PromptManagerModule.prototype.init = function (moduleConfiguration, serviceSetti
|
||||||
this.saveServiceSettings().then(() => this.render());
|
this.saveServiceSettings().then(() => this.render());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Factory function for creating quick edit elements
|
||||||
|
const saveSettings = this.saveServiceSettings;
|
||||||
|
const createQuickEdit = function() {
|
||||||
|
return {
|
||||||
|
element: null,
|
||||||
|
prompt: null,
|
||||||
|
|
||||||
|
from(element, prompt) {
|
||||||
|
this.element = element;
|
||||||
|
element.value = prompt.content ?? '';
|
||||||
|
element.addEventListener('input', () => {
|
||||||
|
prompt.content = element.value;
|
||||||
|
saveSettings();
|
||||||
|
});
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
update(value) {
|
||||||
|
this.element.value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const mainPrompt = this.getPromptById('main');
|
||||||
|
const mainPromptTextarea = document.getElementById('main_prompt_quick_edit_textarea');
|
||||||
|
const mainQuickEdit = createQuickEdit().from(mainPromptTextarea, mainPrompt);
|
||||||
|
|
||||||
|
const jailbreakPrompt = this.getPromptById('jailbreak');
|
||||||
|
const jailbreakPromptTextarea = document.getElementById('jailbreak_prompt_quick_edit_textarea');
|
||||||
|
const jailbreakQuickEdit = createQuickEdit().from(jailbreakPromptTextarea, jailbreakPrompt);
|
||||||
|
|
||||||
// Save prompt edit form to settings and close form.
|
// Save prompt edit form to settings and close form.
|
||||||
this.handleSavePrompt = (event) => {
|
this.handleSavePrompt = (event) => {
|
||||||
const promptId = event.target.dataset.pmPrompt;
|
const promptId = event.target.dataset.pmPrompt;
|
||||||
|
@ -313,6 +345,9 @@ PromptManagerModule.prototype.init = function (moduleConfiguration, serviceSetti
|
||||||
this.updatePromptWithPromptEditForm(prompt);
|
this.updatePromptWithPromptEditForm(prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('main' === promptId) mainQuickEdit.update(prompt.content)
|
||||||
|
if ('jailbreak' === promptId) jailbreakQuickEdit.update(prompt.content)
|
||||||
|
|
||||||
this.log('Saved prompt: ' + promptId);
|
this.log('Saved prompt: ' + promptId);
|
||||||
|
|
||||||
this.hidePopup();
|
this.hidePopup();
|
||||||
|
|
|
@ -1862,9 +1862,7 @@ function loadOpenAISettings(data, settings) {
|
||||||
$('#openai_external_category').toggle(oai_settings.show_external_models);
|
$('#openai_external_category').toggle(oai_settings.show_external_models);
|
||||||
|
|
||||||
if (settings.impersonation_prompt !== undefined) oai_settings.impersonation_prompt = settings.impersonation_prompt;
|
if (settings.impersonation_prompt !== undefined) oai_settings.impersonation_prompt = settings.impersonation_prompt;
|
||||||
$('#main_prompt_textarea').val(oai_settings.main_prompt);
|
|
||||||
$('#nsfw_prompt_textarea').val(oai_settings.nsfw_prompt);
|
|
||||||
$('#jailbreak_prompt_textarea').val(oai_settings.jailbreak_prompt);
|
|
||||||
$('#impersonation_prompt_textarea').val(oai_settings.impersonation_prompt);
|
$('#impersonation_prompt_textarea').val(oai_settings.impersonation_prompt);
|
||||||
$('#nsfw_avoidance_prompt_textarea').val(oai_settings.nsfw_avoidance_prompt);
|
$('#nsfw_avoidance_prompt_textarea').val(oai_settings.nsfw_avoidance_prompt);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue