mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Added probabilities to actions class
This commit is contained in:
@@ -712,7 +712,10 @@ class KoboldStoryRegister(object):
|
|||||||
def __init__(self, socketio, story_settings, koboldai_vars, tokenizer=None, sequence=[]):
|
def __init__(self, socketio, story_settings, koboldai_vars, tokenizer=None, sequence=[]):
|
||||||
self.socketio = socketio
|
self.socketio = socketio
|
||||||
self.koboldai_vars = koboldai_vars
|
self.koboldai_vars = koboldai_vars
|
||||||
self.actions = {} #keys = "Selected Text", "Options", "Selected Text Length", "In AI Input" with options being a dict with keys of "text", "Pinned", "Previous Selection", "Edited"
|
#### DO NOT DIRECTLY EDIT THE ACTIONS DICT. IT WILL NOT TRANSMIT TO CLIENT. USE FUCTIONS BELOW TO DO SO ###
|
||||||
|
#### doing actions[x] = game text is OK
|
||||||
|
self.actions = {} #keys = "Selected Text", "Options", "Selected Text Length", "In AI Input", "Probabilities".
|
||||||
|
#Options being a list of dict with keys of "text", "Pinned", "Previous Selection", "Edited", "Probabilities"
|
||||||
self.action_count = -1
|
self.action_count = -1
|
||||||
self.tokenizer = tokenizer
|
self.tokenizer = tokenizer
|
||||||
self.story_settings = story_settings
|
self.story_settings = story_settings
|
||||||
@@ -763,8 +766,10 @@ class KoboldStoryRegister(object):
|
|||||||
else:
|
else:
|
||||||
self.actions[i]['Selected Text Length'] = None
|
self.actions[i]['Selected Text Length'] = None
|
||||||
self.actions[i]["In AI Input"] = False
|
self.actions[i]["In AI Input"] = False
|
||||||
|
self.actions[i]['Probabilities'] = []
|
||||||
process_variable_changes(self.socketio, "actions", "Selected Text", {"id": i, "text": text}, {"id": i, "text": old_text})
|
process_variable_changes(self.socketio, "actions", "Selected Text", {"id": i, "text": text}, {"id": i, "text": old_text})
|
||||||
process_variable_changes(self.socketio, "actions", 'Selected Text Length', {"id": i, 'length': self.actions[i]['Selected Text Length']}, {"id": i, 'length': old_length})
|
process_variable_changes(self.socketio, "actions", 'Selected Text Length', {"id": i, 'length': self.actions[i]['Selected Text Length']}, {"id": i, 'length': old_length})
|
||||||
|
process_variable_changes(self.socketio, "actions", 'Probabilities', {"id": i, 'Probabilities': self.actions[i]['Probabilities']}, None)
|
||||||
process_variable_changes(self.socketio, "actions", 'In AI Input', {"id": i, 'In AI Input': self.actions[i]["In AI Input"]}, None)
|
process_variable_changes(self.socketio, "actions", 'In AI Input', {"id": i, 'In AI Input': self.actions[i]["In AI Input"]}, None)
|
||||||
ignore = self.koboldai_vars.calc_ai_text()
|
ignore = self.koboldai_vars.calc_ai_text()
|
||||||
self.set_game_saved()
|
self.set_game_saved()
|
||||||
@@ -815,6 +820,7 @@ class KoboldStoryRegister(object):
|
|||||||
selected_text_length = 0
|
selected_text_length = 0
|
||||||
self.actions[self.action_count]["Selected Text Length"] = selected_text_length
|
self.actions[self.action_count]["Selected Text Length"] = selected_text_length
|
||||||
self.actions[self.action_count]["In AI Input"] = False
|
self.actions[self.action_count]["In AI Input"] = False
|
||||||
|
self.actions[self.action_count]["Probabilities"] = []
|
||||||
for item in self.actions[self.action_count]["Options"]:
|
for item in self.actions[self.action_count]["Options"]:
|
||||||
if item['text'] == text:
|
if item['text'] == text:
|
||||||
old_options = self.actions[self.action_count]["Options"]
|
old_options = self.actions[self.action_count]["Options"]
|
||||||
@@ -827,29 +833,33 @@ class KoboldStoryRegister(object):
|
|||||||
else:
|
else:
|
||||||
selected_text_length = 0
|
selected_text_length = 0
|
||||||
|
|
||||||
self.actions[self.action_count] = {"Selected Text": text, "Selected Text Length": selected_text_length, "In AI Input": False, "Options": []}
|
self.actions[self.action_count] = {"Selected Text": text, "Selected Text Length": selected_text_length, "In AI Input": False, "Options": [], "Probabilities": []}
|
||||||
|
|
||||||
process_variable_changes(self.socketio, "actions", "Selected Text", {"id": self.action_count, "text": text}, 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})
|
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})
|
||||||
process_variable_changes(self.socketio, "actions", 'In AI Input', {"id": self.action_count, 'In AI Input': self.actions[self.action_count]["In AI Input"]}, None)
|
process_variable_changes(self.socketio, "actions", 'In AI Input', {"id": self.action_count, 'In AI Input': self.actions[self.action_count]["In AI Input"]}, None)
|
||||||
|
process_variable_changes(self.socketio, "actions", 'Probabilities', {"id": self.action_count, 'Probabilities': self.actions[self.action_count]['Probabilities']}, None)
|
||||||
ignore = self.koboldai_vars.calc_ai_text()
|
ignore = self.koboldai_vars.calc_ai_text()
|
||||||
self.set_game_saved()
|
self.set_game_saved()
|
||||||
|
|
||||||
def append_options(self, option_list):
|
def append_options(self, option_list):
|
||||||
if self.action_count+1 in self.actions:
|
if self.action_count+1 in self.actions:
|
||||||
old_options = copy.deepcopy(self.actions[self.action_count+1]["Options"])
|
old_options = copy.deepcopy(self.actions[self.action_count+1]["Options"])
|
||||||
self.actions[self.action_count+1]['Options'].extend([{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False} for x in option_list])
|
self.actions[self.action_count+1]['Options'].extend([{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False, "Probabilities": []} for x in option_list])
|
||||||
else:
|
else:
|
||||||
old_options = None
|
old_options = None
|
||||||
self.actions[self.action_count+1] = {"Selected Text": "", "Selected Text Length": 0, "In AI Input": False, "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, "In AI Input": False, "Options": [{"text": x, "Pinned": False, "Previous Selection": False, "Edited": False, "Probabilities": []} 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})
|
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()
|
self.set_game_saved()
|
||||||
|
|
||||||
def set_options(self, option_list, action_id):
|
def set_options(self, option_list, action_id):
|
||||||
if action_id not in self.actions:
|
if action_id not in self.actions:
|
||||||
|
old_options = None
|
||||||
self.action_id[action_id] = {"Selected Text": "", "Options": option_list}
|
self.action_id[action_id] = {"Selected Text": "", "Options": option_list}
|
||||||
else:
|
else:
|
||||||
|
old_options = self.actions[action_id]["Options"]
|
||||||
self.action_id[action_id]['Options'] = option_list
|
self.action_id[action_id]['Options'] = option_list
|
||||||
|
process_variable_changes(self.socketio, "actions", "Options", {"id": action_id, "options": self.actions[action_id]["Options"]}, {"id": action_id, "options": old_options})
|
||||||
|
|
||||||
def clear_unused_options(self, pointer=None):
|
def clear_unused_options(self, pointer=None):
|
||||||
new_options = []
|
new_options = []
|
||||||
@@ -905,6 +915,7 @@ class KoboldStoryRegister(object):
|
|||||||
old_length = self.actions[action_step]["Selected Text Length"]
|
old_length = self.actions[action_step]["Selected Text Length"]
|
||||||
if option_number < len(self.actions[action_step]['Options']):
|
if option_number < len(self.actions[action_step]['Options']):
|
||||||
self.actions[action_step]["Selected Text"] = self.actions[action_step]['Options'][option_number]['text']
|
self.actions[action_step]["Selected Text"] = self.actions[action_step]['Options'][option_number]['text']
|
||||||
|
self.actions[action_step]["Probabilities"] = self.actions[action_step]['Options'][option_number]['Probabilities']
|
||||||
if self.tokenizer is not None:
|
if self.tokenizer is not None:
|
||||||
self.actions[action_step]['Selected Text Length'] = len(self.tokenizer.encode(self.actions[action_step]['Options'][option_number]['text']))
|
self.actions[action_step]['Selected Text Length'] = len(self.tokenizer.encode(self.actions[action_step]['Options'][option_number]['text']))
|
||||||
else:
|
else:
|
||||||
@@ -1016,6 +1027,18 @@ class KoboldStoryRegister(object):
|
|||||||
process_variable_changes(self.socketio, "actions", "Selected Text", {"id": self.action_count+1, "text": self.actions[self.action_count+1]['Selected Text']}, None)
|
process_variable_changes(self.socketio, "actions", "Selected Text", {"id": self.action_count+1, "text": self.actions[self.action_count+1]['Selected Text']}, None)
|
||||||
process_variable_changes(self.socketio, "actions", 'Selected Text Length', {"id": self.action_count+1, 'length': self.actions[self.action_count+1]['Selected Text Length']}, {"id": self.action_count, 'length': 0})
|
process_variable_changes(self.socketio, "actions", 'Selected Text Length', {"id": self.action_count+1, 'length': self.actions[self.action_count+1]['Selected Text Length']}, {"id": self.action_count, 'length': 0})
|
||||||
|
|
||||||
|
def set_probabilites(self, probabilities, action_id=self.action_count):
|
||||||
|
if action_id in self.actions:
|
||||||
|
self.actions[action_id]['Probabilities'] = probabilities
|
||||||
|
process_variable_changes(self.socketio, "actions", 'Probabilities', {"id": action_id, 'Probabilities': self.actions[action_id]['Probabilities']}, None)
|
||||||
|
|
||||||
|
def set_option_probabilities(self, probabilities, option_number, action_id=self.action_count+1
|
||||||
|
if action_id in self.actions:
|
||||||
|
old_options = self.actions[action_id]["options"]
|
||||||
|
if option_number < len(self.actions[action_id]["options"]):
|
||||||
|
self.actions[action_id]["options"][option_number]['Probabilities'] = probabilities
|
||||||
|
process_variable_changes(self.socketio, "actions", "Options", {"id": action_id, "options": self.actions[action_id]["Options"]}, {"id": action_id, "options": old_options})
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
new_variable = name not in self.__dict__
|
new_variable = name not in self.__dict__
|
||||||
old_value = getattr(self, name, None)
|
old_value = getattr(self, name, None)
|
||||||
|
Reference in New Issue
Block a user