diff --git a/aiserver.py b/aiserver.py index 1828fa57..7b827ae9 100644 --- a/aiserver.py +++ b/aiserver.py @@ -594,24 +594,34 @@ def loadmodelsettings(): koboldai_vars.nobreakmodel = js["nobreakmodel"] if("sampler_order" in js): koboldai_vars.sampler_order = js["sampler_order"] + koboldai_vars.default_preset['sampler_order'] = js["sampler_order"] if("temp" in js): koboldai_vars.temp = js["temp"] + koboldai_vars.default_preset['temp'] = js["temp"] if("top_p" in js): koboldai_vars.top_p = js["top_p"] + koboldai_vars.default_preset['top_p'] = js["top_p"] if("top_k" in js): koboldai_vars.top_k = js["top_k"] + koboldai_vars.default_preset['top_k'] = js["top_k"] if("tfs" in js): koboldai_vars.tfs = js["tfs"] + koboldai_vars.default_preset['tfs'] = js["tfs"] if("typical" in js): koboldai_vars.typical = js["typical"] + koboldai_vars.default_preset['typical'] = js["typical"] if("top_a" in js): koboldai_vars.top_a = js["top_a"] + koboldai_vars.default_preset['top_a'] = js["top_a"] if("rep_pen" in js): koboldai_vars.rep_pen = js["rep_pen"] + koboldai_vars.default_preset['rep_pen'] = js["rep_pen"] if("rep_pen_slope" in js): koboldai_vars.rep_pen_slope = js["rep_pen_slope"] + koboldai_vars.default_preset['rep_pen_slope'] = js["rep_pen_slope"] if("rep_pen_range" in js): koboldai_vars.rep_pen_range = js["rep_pen_range"] + koboldai_vars.default_preset['rep_pen_range'] = js["rep_pen_range"] if("adventure" in js): koboldai_vars.adventure = js["adventure"] if("chatmode" in js): @@ -2104,20 +2114,21 @@ def load_model(use_gpu=True, gpu_layers=None, disk_layers=None, initial_load=Fal #Let's load the presets with open('settings/preset/official.presets') as f: presets = json.load(f) - to_use = {} + to_use = {"Recommended": {"Default": koboldai_vars.default_preset}} #Check for 6B in title if '6B' in koboldai_vars.model or '6.7B' in koboldai_vars.model or '1.3B' in koboldai_vars.model: - to_use['Recommended'] = presets['6B'] + to_use['Recommended'].update(presets['6B']) for key in presets: if key != '6B': to_use[key] = presets[key] elif '13B' in koboldai_vars.model: - to_use['Recommended'] = presets['13B'] + to_use['Recommended'].update(presets['13B']) for key in presets: if key != '13B': to_use[key] = presets[key] else: - to_use = presets + for key in presets: + to_use[key] = presets[key] koboldai_vars.presets = to_use # Set up Flask routes diff --git a/koboldai_settings.py b/koboldai_settings.py index 7e05cd21..4ce83e7e 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -178,7 +178,7 @@ class settings(object): raise class model_settings(settings): - local_only_variables = ['badwordsids', 'apikey', 'tqdm', 'socketio'] + local_only_variables = ['badwordsids', 'apikey', 'tqdm', 'socketio', 'default_preset'] no_save_variables = ['tqdm', 'socketio'] settings_name = "model" def __init__(self, socketio): @@ -222,6 +222,7 @@ class model_settings(settings): self.revision = None self.presets = [] # Holder for presets self.selected_preset = "" + self.default_preset = {} #dummy class to eat the tqdm output @@ -531,6 +532,11 @@ class KoboldStoryRegister(object): self.action_count+=1 if self.action_count in self.actions: self.actions[self.action_count]["Selected Text"] = text + if self.tokenizer is not None: + selected_text_length = len(self.tokenizer.encode(text)) + else: + selected_text_length = 0 + self.actions[self.action_count]["Selected Text Length"] = selected_text_length for item in self.actions[self.action_count]["Options"]: if item['text'] == text: old_options = self.actions[self.action_count]["Options"] @@ -538,12 +544,13 @@ class KoboldStoryRegister(object): process_variable_changes(self.socketio, "actions", "Options", {"id": self.action_count, "options": self.actions[self.action_count]["Options"]}, {"id": self.action_count, "options": old_options}) else: - self.actions[self.action_count] = {"Selected Text": text, "Options": []} + if self.tokenizer is not None: + selected_text_length = len(self.tokenizer.encode(text)) + else: + selected_text_length = 0 + + self.actions[self.action_count] = {"Selected Text": text, "Selected Text Length": selected_text_length, "Options": []} - if self.tokenizer is not None: - self.actions[self.action_count]['Selected Text Length'] = len(self.tokenizer.encode(text)) - else: - self.actions[self.action_count]['Selected Text Length'] = None process_variable_changes(self.socketio, "actions", "Selected Text", {"id": self.action_count, "text": text}, None) process_variable_changes(self.socketio, "actions", 'Selected Text Length', {"id": self.action_count, 'length': self.actions[self.action_count]['Selected Text Length']}, {"id": self.action_count, 'length': 0}) self.set_game_saved() @@ -554,7 +561,7 @@ class KoboldStoryRegister(object): self.actions[self.action_count+1]['Options'].extend([{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False} for x in option_list]) else: old_options = None - self.actions[self.action_count+1] = {"Selected Text": "", "Options": [{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False} for x in option_list]} + self.actions[self.action_count+1] = {"Selected Text": "", "Selected Text Length": 0, "Options": [{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False} for x in option_list]} process_variable_changes(self.socketio, "actions", "Options", {"id": self.action_count+1, "options": self.actions[self.action_count+1]["Options"]}, {"id": self.action_count+1, "options": old_options}) self.set_game_saved()