mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Custom chat separators + fixes for drawers logic
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "TavernAI",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "TavernAI",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"dependencies": {
|
||||
"@dqbd/tiktoken": "^1.0.2",
|
||||
"axios": "^1.3.4",
|
||||
|
@ -815,6 +815,15 @@
|
||||
Remove Empty New Lines from Output
|
||||
</label>
|
||||
<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="<START>" />
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="anchors-block">
|
||||
Anchors Order
|
||||
<a href="/notes/9" class="notes-link" target="_blank">
|
||||
|
@ -1,5 +1,5 @@
|
||||
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 {
|
||||
kai_settings,
|
||||
@ -45,6 +45,7 @@ import {
|
||||
disable_personality_formatting,
|
||||
disable_scenario_formatting,
|
||||
always_force_name2,
|
||||
custom_chat_separator,
|
||||
} from "./scripts/power-user.js";
|
||||
|
||||
import {
|
||||
@ -67,7 +68,7 @@ import {
|
||||
nai_settings,
|
||||
} 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
|
||||
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) {
|
||||
for (let example of mesExamplesArray) {
|
||||
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 extension_prompt = getExtensionPrompt();
|
||||
@ -1347,9 +1360,16 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
|
||||
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;
|
||||
} else {
|
||||
}
|
||||
// add pygma <START>
|
||||
else {
|
||||
mesSendString = '<START>\n' + mesSendString;
|
||||
//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
|
||||
"", // Context
|
||||
true, // stop at newline
|
||||
max_context, // Maximum prompt size in tokens
|
||||
this_max_context, // Maximum prompt size in tokens
|
||||
1, // num attempts
|
||||
]
|
||||
};
|
||||
@ -4100,6 +4120,7 @@ $(document).ready(function () {
|
||||
var icon = $(this).find('.drawer-icon');
|
||||
var drawer = $(this).parent().find('.drawer-content');
|
||||
var drawerWasOpenAlready = $(this).parent().find('.drawer-content').hasClass('openDrawer');
|
||||
const pinnedDrawerClicked = drawer.hasClass('pinnedOpen');
|
||||
|
||||
if (!drawerWasOpenAlready) {
|
||||
$('.openDrawer').not('.pinnedOpen').slideToggle(200, "swing");
|
||||
@ -4110,7 +4131,14 @@ $(document).ready(function () {
|
||||
$(this).closest('.drawer').find('.drawer-content').slideToggle(200, "swing");
|
||||
} else if (drawerWasOpenAlready) {
|
||||
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');
|
||||
}
|
||||
});
|
||||
|
@ -287,6 +287,12 @@ $("document").ready(function () {
|
||||
} else {
|
||||
console.log('removing pin class from right nav');
|
||||
$(RightNavPanel).removeClass('pinnedOpen');
|
||||
|
||||
if ($(RightNavPanel).hasClass('openDrawer') && $('.openDrawer').length > 1) {
|
||||
$(RightNavPanel).slideToggle(200, "swing");
|
||||
$(rightNavDrawerIcon).toggleClass('openIcon closedIcon');
|
||||
$(RightNavPanel).toggleClass('openDrawer closedDrawer');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -48,6 +48,11 @@ async function moduleWorker() {
|
||||
// take the count of messages
|
||||
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) {
|
||||
$('#extension_floating_counter').text('No');
|
||||
return;
|
||||
|
@ -7,6 +7,7 @@ export {
|
||||
disable_scenario_formatting,
|
||||
disable_personality_formatting,
|
||||
always_force_name2,
|
||||
custom_chat_separator,
|
||||
};
|
||||
|
||||
let collapse_newlines = false;
|
||||
@ -16,6 +17,7 @@ let disable_description_formatting = false;
|
||||
let disable_scenario_formatting = false;
|
||||
let disable_personality_formatting = false;
|
||||
let always_force_name2 = false;
|
||||
let custom_chat_separator = '';
|
||||
|
||||
const storage_keys = {
|
||||
collapse_newlines: "TavernAI_collapse_newlines",
|
||||
@ -25,6 +27,7 @@ const storage_keys = {
|
||||
disable_scenario_formatting: "TavernAI_disable_scenario_formatting",
|
||||
disable_personality_formatting: "TavernAI_disable_personality_formatting",
|
||||
always_force_name2: "TavernAI_always_force_name2",
|
||||
custom_chat_separator: "TavernAI_custom_chat_separator",
|
||||
};
|
||||
|
||||
function collapseNewlines(x) {
|
||||
@ -39,6 +42,7 @@ function loadPowerUserSettings() {
|
||||
disable_scenario_formatting = localStorage.getItem(storage_keys.disable_scenario_formatting) == "true";
|
||||
disable_personality_formatting = localStorage.getItem(storage_keys.disable_personality_formatting) == "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);
|
||||
$("#collapse-newlines-checkbox").prop("checked", collapse_newlines);
|
||||
@ -47,6 +51,7 @@ function loadPowerUserSettings() {
|
||||
$("#disable-scenario-formatting-checkbox").prop("checked", disable_scenario_formatting);
|
||||
$("#disable-personality-formatting-checkbox").prop("checked", disable_personality_formatting);
|
||||
$("#always-force-name2-checkbox").prop("checked", always_force_name2);
|
||||
$("#custom_chat_separator").val(custom_chat_separator);
|
||||
}
|
||||
|
||||
$(document).ready(() => {
|
||||
@ -87,4 +92,9 @@ $(document).ready(() => {
|
||||
always_force_name2 = !!$(this).prop("checked");
|
||||
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);
|
||||
});
|
||||
});
|
@ -2790,7 +2790,7 @@ filter: invert(20%) sepia(100%) saturate(2518%) hue-rotate(353deg) brightness(93
|
||||
padding: 10px;
|
||||
border: 1px solid var(--grey30a);
|
||||
box-shadow: 0 0 20px black;
|
||||
/* min-width:400px; */
|
||||
min-width: 400px;
|
||||
overflow-y: scroll;
|
||||
max-height: calc(100vh - 70px);
|
||||
display: none;
|
||||
@ -2824,6 +2824,7 @@ filter: invert(20%) sepia(100%) saturate(2518%) hue-rotate(353deg) brightness(93
|
||||
}
|
||||
|
||||
.drawer-content {
|
||||
min-width: unset;
|
||||
width: calc(100vw - 10px);
|
||||
position: fixed;
|
||||
left: 0;
|
||||
|
Reference in New Issue
Block a user