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}`);
 | |
| }
 | |
| 
 | |
| 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}`);
 | |
| }
 | |
| 
 | |
| 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}`,
 | |
|         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();
 | |
|     });
 | |
| }); |