Custom chat separators + fixes for drawers logic

This commit is contained in:
SillyLossy
2023-03-24 01:35:07 +02:00
parent 339d3c357d
commit a1f16f470b
7 changed files with 68 additions and 9 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "TavernAI", "name": "TavernAI",
"version": "1.1.0", "version": "1.1.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "TavernAI", "name": "TavernAI",
"version": "1.1.0", "version": "1.1.1",
"dependencies": { "dependencies": {
"@dqbd/tiktoken": "^1.0.2", "@dqbd/tiktoken": "^1.0.2",
"axios": "^1.3.4", "axios": "^1.3.4",

View File

@ -815,6 +815,15 @@
Remove Empty New Lines from Output Remove Empty New Lines from Output
</label> </label>
<hr> <hr>
<div class="range-block">
<div class="range-block-title">
Custom Chat Separator
</div>
<div class="range-block-range">
<input id="custom_chat_separator" class="text_pole" type="text" placeholder="&lt;START&gt;" />
</div>
</div>
<hr>
<div id="anchors-block"> <div id="anchors-block">
Anchors Order Anchors Order
<a href="/notes/9" class="notes-link" target="_blank"> <a href="/notes/9" class="notes-link" target="_blank">

View File

@ -1,5 +1,5 @@
import { humanizedDateTime } from "./scripts/RossAscends-mods.js"; import { humanizedDateTime } from "./scripts/RossAscends-mods.js";
import { encode, decode } from "../scripts/gpt-2-3-tokenizer/mod.js"; import { encode } from "../scripts/gpt-2-3-tokenizer/mod.js";
import { import {
kai_settings, kai_settings,
@ -45,6 +45,7 @@ import {
disable_personality_formatting, disable_personality_formatting,
disable_scenario_formatting, disable_scenario_formatting,
always_force_name2, always_force_name2,
custom_chat_separator,
} from "./scripts/power-user.js"; } from "./scripts/power-user.js";
import { import {
@ -67,7 +68,7 @@ import {
nai_settings, nai_settings,
} from "./scripts/nai-settings.js"; } from "./scripts/nai-settings.js";
import { debounce, delay, stringFormat } from "./scripts/utils.js"; import { debounce, delay } from "./scripts/utils.js";
//exporting functions and vars for mods //exporting functions and vars for mods
export { export {
@ -1114,6 +1115,12 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
} }
} }
if (custom_chat_separator && custom_chat_separator.length) {
for (let i = 0; i < mesExamplesArray.length; i++) {
mesExamplesArray[i] = mesExamplesArray[i].replace(/<START>/gi, custom_chat_separator);
}
}
if (pin_examples) { if (pin_examples) {
for (let example of mesExamplesArray) { for (let example of mesExamplesArray) {
if (!is_pygmalion) { if (!is_pygmalion) {
@ -1180,6 +1187,12 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
} }
} }
} }
if (main_api == 'openai') {
this_max_context = oai_settings.openai_max_context;
}
if (main_api == 'textgenerationwebui') {
this_max_context = (max_context - amount_gen);
}
let { worldInfoString, worldInfoBefore, worldInfoAfter } = getWorldInfoPrompt(chat2); let { worldInfoString, worldInfoBefore, worldInfoAfter } = getWorldInfoPrompt(chat2);
let extension_prompt = getExtensionPrompt(); let extension_prompt = getExtensionPrompt();
@ -1347,9 +1360,16 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
setPromtString(); setPromtString();
} }
if (!is_pygmalion) { // add a custom dingus (if defined)
if (custom_chat_separator && custom_chat_separator.length) {
mesSendString = custom_chat_separator + '\n' + mesSendString;
}
// add non-pygma dingus
else if (!is_pygmalion) {
mesSendString = '\nThen the roleplay chat between ' + name1 + ' and ' + name2 + ' begins.\n' + mesSendString; mesSendString = '\nThen the roleplay chat between ' + name1 + ' and ' + name2 + ' begins.\n' + mesSendString;
} else { }
// add pygma <START>
else {
mesSendString = '<START>\n' + mesSendString; mesSendString = '<START>\n' + mesSendString;
//mesSendString = mesSendString; //This edit simply removes the first "<START>" that is prepended to all context prompts //mesSendString = mesSendString; //This edit simply removes the first "<START>" that is prepended to all context prompts
} }
@ -1450,7 +1470,7 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
name2, // name2 name2, // name2
"", // Context "", // Context
true, // stop at newline true, // stop at newline
max_context, // Maximum prompt size in tokens this_max_context, // Maximum prompt size in tokens
1, // num attempts 1, // num attempts
] ]
}; };
@ -4100,6 +4120,7 @@ $(document).ready(function () {
var icon = $(this).find('.drawer-icon'); var icon = $(this).find('.drawer-icon');
var drawer = $(this).parent().find('.drawer-content'); var drawer = $(this).parent().find('.drawer-content');
var drawerWasOpenAlready = $(this).parent().find('.drawer-content').hasClass('openDrawer'); var drawerWasOpenAlready = $(this).parent().find('.drawer-content').hasClass('openDrawer');
const pinnedDrawerClicked = drawer.hasClass('pinnedOpen');
if (!drawerWasOpenAlready) { if (!drawerWasOpenAlready) {
$('.openDrawer').not('.pinnedOpen').slideToggle(200, "swing"); $('.openDrawer').not('.pinnedOpen').slideToggle(200, "swing");
@ -4110,7 +4131,14 @@ $(document).ready(function () {
$(this).closest('.drawer').find('.drawer-content').slideToggle(200, "swing"); $(this).closest('.drawer').find('.drawer-content').slideToggle(200, "swing");
} else if (drawerWasOpenAlready) { } else if (drawerWasOpenAlready) {
icon.toggleClass('closedIcon openIcon'); icon.toggleClass('closedIcon openIcon');
$('.openDrawer').slideToggle(200, "swing");
if (pinnedDrawerClicked) {
$(drawer).slideToggle(200, "swing");
}
else {
$('.openDrawer').not('.pinnedOpen').slideToggle(200, "swing");
}
drawer.toggleClass('closedDrawer openDrawer'); drawer.toggleClass('closedDrawer openDrawer');
} }
}); });

View File

@ -287,6 +287,12 @@ $("document").ready(function () {
} else { } else {
console.log('removing pin class from right nav'); console.log('removing pin class from right nav');
$(RightNavPanel).removeClass('pinnedOpen'); $(RightNavPanel).removeClass('pinnedOpen');
if ($(RightNavPanel).hasClass('openDrawer') && $('.openDrawer').length > 1) {
$(RightNavPanel).slideToggle(200, "swing");
$(rightNavDrawerIcon).toggleClass('openIcon closedIcon');
$(RightNavPanel).toggleClass('openDrawer closedDrawer');
}
} }
}); });

View File

@ -48,6 +48,11 @@ async function moduleWorker() {
// take the count of messages // take the count of messages
lastMessageNumber = Array.isArray(context.chat) && context.chat.length ? context.chat.filter(m => m.is_user).length : 0; lastMessageNumber = Array.isArray(context.chat) && context.chat.length ? context.chat.filter(m => m.is_user).length : 0;
// special case for new chat
if (Array.isArray(context.chat) && context.chat.length === 1) {
lastMessageNumber = 1;
}
if (lastMessageNumber <= 0 || promptInsertionInterval <= 0) { if (lastMessageNumber <= 0 || promptInsertionInterval <= 0) {
$('#extension_floating_counter').text('No'); $('#extension_floating_counter').text('No');
return; return;

View File

@ -7,6 +7,7 @@ export {
disable_scenario_formatting, disable_scenario_formatting,
disable_personality_formatting, disable_personality_formatting,
always_force_name2, always_force_name2,
custom_chat_separator,
}; };
let collapse_newlines = false; let collapse_newlines = false;
@ -16,6 +17,7 @@ let disable_description_formatting = false;
let disable_scenario_formatting = false; let disable_scenario_formatting = false;
let disable_personality_formatting = false; let disable_personality_formatting = false;
let always_force_name2 = false; let always_force_name2 = false;
let custom_chat_separator = '';
const storage_keys = { const storage_keys = {
collapse_newlines: "TavernAI_collapse_newlines", collapse_newlines: "TavernAI_collapse_newlines",
@ -25,6 +27,7 @@ const storage_keys = {
disable_scenario_formatting: "TavernAI_disable_scenario_formatting", disable_scenario_formatting: "TavernAI_disable_scenario_formatting",
disable_personality_formatting: "TavernAI_disable_personality_formatting", disable_personality_formatting: "TavernAI_disable_personality_formatting",
always_force_name2: "TavernAI_always_force_name2", always_force_name2: "TavernAI_always_force_name2",
custom_chat_separator: "TavernAI_custom_chat_separator",
}; };
function collapseNewlines(x) { function collapseNewlines(x) {
@ -39,6 +42,7 @@ function loadPowerUserSettings() {
disable_scenario_formatting = localStorage.getItem(storage_keys.disable_scenario_formatting) == "true"; disable_scenario_formatting = localStorage.getItem(storage_keys.disable_scenario_formatting) == "true";
disable_personality_formatting = localStorage.getItem(storage_keys.disable_personality_formatting) == "true"; disable_personality_formatting = localStorage.getItem(storage_keys.disable_personality_formatting) == "true";
always_force_name2 = localStorage.getItem(storage_keys.always_force_name2) == "true"; always_force_name2 = localStorage.getItem(storage_keys.always_force_name2) == "true";
custom_chat_separator = localStorage.getItem(storage_keys.custom_chat_separator);
$("#force-pygmalion-formatting-checkbox").prop("checked", force_pygmalion_formatting); $("#force-pygmalion-formatting-checkbox").prop("checked", force_pygmalion_formatting);
$("#collapse-newlines-checkbox").prop("checked", collapse_newlines); $("#collapse-newlines-checkbox").prop("checked", collapse_newlines);
@ -47,6 +51,7 @@ function loadPowerUserSettings() {
$("#disable-scenario-formatting-checkbox").prop("checked", disable_scenario_formatting); $("#disable-scenario-formatting-checkbox").prop("checked", disable_scenario_formatting);
$("#disable-personality-formatting-checkbox").prop("checked", disable_personality_formatting); $("#disable-personality-formatting-checkbox").prop("checked", disable_personality_formatting);
$("#always-force-name2-checkbox").prop("checked", always_force_name2); $("#always-force-name2-checkbox").prop("checked", always_force_name2);
$("#custom_chat_separator").val(custom_chat_separator);
} }
$(document).ready(() => { $(document).ready(() => {
@ -87,4 +92,9 @@ $(document).ready(() => {
always_force_name2 = !!$(this).prop("checked"); always_force_name2 = !!$(this).prop("checked");
localStorage.setItem(storage_keys.always_force_name2, always_force_name2); localStorage.setItem(storage_keys.always_force_name2, always_force_name2);
}); });
$("#custom_chat_separator").on('input', function() {
custom_chat_separator = $(this).val();
localStorage.setItem(storage_keys.custom_chat_separator, custom_chat_separator);
});
}); });

View File

@ -2790,7 +2790,7 @@ filter: invert(20%) sepia(100%) saturate(2518%) hue-rotate(353deg) brightness(93
padding: 10px; padding: 10px;
border: 1px solid var(--grey30a); border: 1px solid var(--grey30a);
box-shadow: 0 0 20px black; box-shadow: 0 0 20px black;
/* min-width:400px; */ min-width: 400px;
overflow-y: scroll; overflow-y: scroll;
max-height: calc(100vh - 70px); max-height: calc(100vh - 70px);
display: none; display: none;
@ -2824,6 +2824,7 @@ filter: invert(20%) sepia(100%) saturate(2518%) hue-rotate(353deg) brightness(93
} }
.drawer-content { .drawer-content {
min-width: unset;
width: calc(100vw - 10px); width: calc(100vw - 10px);
position: fixed; position: fixed;
left: 0; left: 0;