mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {
 | 
						|
    saveSettingsDebounced,
 | 
						|
} from "../script.js";
 | 
						|
 | 
						|
export {
 | 
						|
    nai_settings,
 | 
						|
    loadNovelPreset,
 | 
						|
    loadNovelSettings,
 | 
						|
    getNovelTier,
 | 
						|
};
 | 
						|
 | 
						|
const nai_settings = {
 | 
						|
    temp_novel: 0.5,
 | 
						|
    rep_pen_novel: 1,
 | 
						|
    rep_pen_size_novel: 100,
 | 
						|
    model_novel: "euterpe-v2",
 | 
						|
    api_key_novel: "",
 | 
						|
    preset_settings_novel: "Classic-Euterpe",
 | 
						|
};
 | 
						|
 | 
						|
const nai_tiers = {
 | 
						|
    0: 'Paper',
 | 
						|
    1: 'Tablet',
 | 
						|
    2: 'Scroll',
 | 
						|
    3: 'Opus',
 | 
						|
};
 | 
						|
 | 
						|
function getNovelTier(tier) {
 | 
						|
    return nai_tiers[tier] ?? 'no_connection';
 | 
						|
}
 | 
						|
 | 
						|
function loadNovelPreset(preset) {
 | 
						|
    nai_settings.temp_novel = preset.temperature;
 | 
						|
    nai_settings.rep_pen_novel = preset.repetition_penalty;
 | 
						|
    nai_settings.rep_pen_size_novel = preset.repetition_penalty_range;
 | 
						|
    $("#temp_novel").val(nai_settings.temp_novel);
 | 
						|
    $("#temp_counter_novel").html(nai_settings.temp_novel);
 | 
						|
 | 
						|
    $("#rep_pen_novel").val(nai_settings.rep_pen_novel);
 | 
						|
    $("#rep_pen_counter_novel").html(nai_settings.rep_pen_novel);
 | 
						|
 | 
						|
    $("#rep_pen_size_novel").val(nai_settings.rep_pen_size_novel);
 | 
						|
    $("#rep_pen_size_counter_novel").html(`${nai_settings.rep_pen_size_novel} Tokens`);
 | 
						|
}
 | 
						|
 | 
						|
function loadNovelSettings(settings){
 | 
						|
    //load Novel API KEY is exists
 | 
						|
    if (settings.api_key_novel != undefined) {
 | 
						|
        nai_settings.api_key_novel = settings.api_key_novel;
 | 
						|
        $("#api_key_novel").val(nai_settings.api_key_novel);
 | 
						|
    }
 | 
						|
 | 
						|
    //load the rest of the Novel settings without any checks
 | 
						|
    nai_settings.model_novel = settings.model_novel;
 | 
						|
    $(`#model_novel_select option[value=${nai_settings.model_novel}]`).attr("selected", true);
 | 
						|
 | 
						|
    nai_settings.temp_novel = settings.temp_novel;
 | 
						|
    nai_settings.rep_pen_novel = settings.rep_pen_novel;
 | 
						|
    nai_settings.rep_pen_size_novel = settings.rep_pen_size_novel;
 | 
						|
 | 
						|
    $("#temp_novel").val(nai_settings.temp_novel);
 | 
						|
    $("#temp_counter_novel").text(Number(nai_settings.temp_novel).toFixed(2));
 | 
						|
 | 
						|
    $("#rep_pen_novel").val(nai_settings.rep_pen_novel);
 | 
						|
    $("#rep_pen_counter_novel").text(Number(nai_settings.rep_pen_novel).toFixed(2));
 | 
						|
 | 
						|
    $("#rep_pen_size_novel").val(nai_settings.rep_pen_size_novel);
 | 
						|
    $("#rep_pen_size_counter_novel").text(`${nai_settings.rep_pen_size_novel} Tokens`);
 | 
						|
}
 | 
						|
 | 
						|
const sliders = [
 | 
						|
    {
 | 
						|
        sliderId: "#temp_novel",
 | 
						|
        counterId: "#temp_counter_novel",
 | 
						|
        format: (val) => Number(val).toFixed(2),
 | 
						|
        setValue: (val) => { nai_settings.temp_novel = Number(val); },
 | 
						|
    },
 | 
						|
    {
 | 
						|
        sliderId: "#rep_pen_novel",
 | 
						|
        counterId: "#rep_pen_counter_novel",
 | 
						|
        format: (val) => Number(val).toFixed(2),
 | 
						|
        setValue: (val) => { nai_settings.rep_pen_novel = Number(val); },
 | 
						|
    },
 | 
						|
    {
 | 
						|
        sliderId: "#rep_pen_size_novel",
 | 
						|
        counterId: "#rep_pen_size_counter_novel",
 | 
						|
        format: (val) => `${val} Tokens`,
 | 
						|
        setValue: (val) => { nai_settings.rep_pen_size_novel = Number(val); },
 | 
						|
    },
 | 
						|
];
 | 
						|
 | 
						|
$(document).ready(function () {
 | 
						|
    sliders.forEach(slider => {
 | 
						|
        $(document).on("input", slider.sliderId, function () {
 | 
						|
            const value = $(this).val();
 | 
						|
            const formattedValue = slider.format(value);
 | 
						|
            slider.setValue(value);
 | 
						|
            $(slider.counterId).html(formattedValue);
 | 
						|
            console.log('saving');
 | 
						|
            saveSettingsDebounced();
 | 
						|
        });
 | 
						|
    });
 | 
						|
    
 | 
						|
    $("#model_novel_select").change(function () {
 | 
						|
        nai_settings.model_novel = $("#model_novel_select").find(":selected").val();
 | 
						|
        saveSettingsDebounced();
 | 
						|
    });
 | 
						|
}); |