Added debugging for Colab issue

This commit is contained in:
ebolam
2022-08-27 21:39:32 -04:00
parent 93662c8488
commit 0abd6de045
2 changed files with 53 additions and 10 deletions

View File

@@ -23,6 +23,7 @@ from os import path, getcwd
import time import time
import re import re
import json import json
import datetime
import collections import collections
import zipfile import zipfile
import packaging import packaging
@@ -6117,43 +6118,57 @@ def loadJSON(json_text_or_dict):
load_story_v1(json_data) load_story_v1(json_data)
def load_story_v1(js): def load_story_v1(js):
print("loading V1 story")
loadpath = js['v1_loadpath'] loadpath = js['v1_loadpath']
print("set loadpath")
filename = js['v1_filename'] filename = js['v1_filename']
print("set filename")
_filename = filename _filename = filename
if(filename.endswith('.json')): if(filename.endswith('.json')):
_filename = filename[:-5] _filename = filename[:-5]
session['story'] = _filename session['story'] = _filename
print("set story name")
#create the story #create the story
#koboldai_vars.create_story(session['story']) #koboldai_vars.create_story(session['story'])
koboldai_vars.create_story('default') koboldai_vars.create_story('default')
print("created blank story")
koboldai_vars.laststory = _filename koboldai_vars.laststory = _filename
print("set last story")
#set the story_name #set the story_name
koboldai_vars.story_name = _filename koboldai_vars.story_name = _filename
print("set story name")
# Copy file contents to vars # Copy file contents to vars
koboldai_vars.gamestarted = js["gamestarted"] koboldai_vars.gamestarted = js["gamestarted"]
print("set game started")
koboldai_vars.prompt = js["prompt"] koboldai_vars.prompt = js["prompt"]
print("set prompt")
koboldai_vars.memory = js["memory"] koboldai_vars.memory = js["memory"]
print("set memory")
koboldai_vars.worldinfo_v2.reset() koboldai_vars.worldinfo_v2.reset()
print("reset world info")
koboldai_vars.worldinfo = [] koboldai_vars.worldinfo = []
koboldai_vars.worldinfo_i = [] koboldai_vars.worldinfo_i = []
koboldai_vars.worldinfo_u = {} koboldai_vars.worldinfo_u = {}
koboldai_vars.wifolders_d = {int(k): v for k, v in js.get("wifolders_d", {}).items()} koboldai_vars.wifolders_d = {int(k): v for k, v in js.get("wifolders_d", {}).items()}
koboldai_vars.wifolders_l = js.get("wifolders_l", []) koboldai_vars.wifolders_l = js.get("wifolders_l", [])
koboldai_vars.wifolders_u = {uid: [] for uid in koboldai_vars.wifolders_d} koboldai_vars.wifolders_u = {uid: [] for uid in koboldai_vars.wifolders_d}
print("set world info folders")
koboldai_vars.lastact = "" koboldai_vars.lastact = ""
koboldai_vars.submission = "" koboldai_vars.submission = ""
koboldai_vars.lastctx = "" koboldai_vars.lastctx = ""
koboldai_vars.genseqs = [] koboldai_vars.genseqs = []
actions = collections.deque(js["actions"]) actions = collections.deque(js["actions"])
print("set local actions")
if(len(koboldai_vars.prompt.strip()) == 0): if(len(koboldai_vars.prompt.strip()) == 0):
print("prompt empty and have actions, setting first action to prompt")
while(len(actions)): while(len(actions)):
action = actions.popleft() action = actions.popleft()
if(len(action.strip()) != 0): if(len(action.strip()) != 0):
@@ -6164,14 +6179,21 @@ def load_story_v1(js):
if(koboldai_vars.gamestarted): if(koboldai_vars.gamestarted):
for s in actions: for s in actions:
koboldai_vars.actions.append(s) koboldai_vars.actions.append(s)
print("set actions")
if "actions_metadata" in js: if "actions_metadata" in js:
print("have actions_metadata")
if type(js["actions_metadata"]) == dict: if type(js["actions_metadata"]) == dict:
print("metadata is a dict")
for key in js["actions_metadata"]: for key in js["actions_metadata"]:
print("actions_metadata key: {}".format(key))
if js["actions_metadata"][key]["Alternative Text"] != []: if js["actions_metadata"][key]["Alternative Text"] != []:
data = js["actions_metadata"][key]["Alternative Text"] data = js["actions_metadata"][key]["Alternative Text"]
print("data: {}".format(data))
data["text"] = data.pop("Text") data["text"] = data.pop("Text")
print("data after pop: {}".format(data))
koboldai_vars.actions.set_options(self, data, key) koboldai_vars.actions.set_options(self, data, key)
print("set actions metadata")
# Try not to break older save files # Try not to break older save files
if("authorsnote" in js): if("authorsnote" in js):
@@ -6818,7 +6840,8 @@ def file_popup(popup_title, starting_folder, return_event, upload=True, jailed=T
editable=False, show_breadcrumbs=True, item_check=None, show_hidden=False, editable=False, show_breadcrumbs=True, item_check=None, show_hidden=False,
valid_only=False, hide_extention=False, extra_parameter_function=None, valid_only=False, hide_extention=False, extra_parameter_function=None,
column_names=['File Name'], show_filename=True, column_names=['File Name'], show_filename=True,
column_widths=["100%"]): column_widths=["100%"],
sort="Modified", desc=False):
#starting_folder = The folder we're going to get folders and/or items from #starting_folder = The folder we're going to get folders and/or items from
#return_event = the socketio event that will be emitted when the load button is clicked #return_event = the socketio event that will be emitted when the load button is clicked
#jailed = if set to true will look for the session variable jailed_folder and prevent navigation outside of that folder #jailed = if set to true will look for the session variable jailed_folder and prevent navigation outside of that folder
@@ -6848,6 +6871,8 @@ def file_popup(popup_title, starting_folder, return_event, upload=True, jailed=T
session['hide_extention'] = hide_extention session['hide_extention'] = hide_extention
session['show_filename'] = show_filename session['show_filename'] = show_filename
session['column_widths'] = column_widths session['column_widths'] = column_widths
session['sort'] = sort
session['desc'] = desc
socketio.emit("load_popup", {"popup_title": popup_title, "call_back": return_event, "renameable": renameable, "deleteable": deleteable, "editable": editable, 'upload': upload}, broadcast=False, room="UI_2") socketio.emit("load_popup", {"popup_title": popup_title, "call_back": return_event, "renameable": renameable, "deleteable": deleteable, "editable": editable, 'upload': upload}, broadcast=False, room="UI_2")
socketio.emit("load_popup", {"popup_title": popup_title, "call_back": return_event, "renameable": renameable, "deleteable": deleteable, "editable": editable, 'upload': upload}, broadcast=True, room="UI_1") socketio.emit("load_popup", {"popup_title": popup_title, "call_back": return_event, "renameable": renameable, "deleteable": deleteable, "editable": editable, 'upload': upload}, broadcast=True, room="UI_1")
@@ -6867,6 +6892,8 @@ def get_files_folders(starting_folder):
hide_extention = session['hide_extention'] hide_extention = session['hide_extention']
show_filename = session['show_filename'] show_filename = session['show_filename']
column_widths = session['column_widths'] column_widths = session['column_widths']
sort = session['sort']
desc = session['desc']
if starting_folder == 'This PC': if starting_folder == 'This PC':
breadcrumbs = [['This PC', 'This PC']] breadcrumbs = [['This PC', 'This PC']]
@@ -6893,7 +6920,7 @@ def get_files_folders(starting_folder):
folders = [] folders = []
files = [] files = []
base_path = os.path.abspath(starting_folder).replace("\\", "/") base_path = os.path.abspath(starting_folder).replace("\\", "/")
for item in os.listdir(base_path): for item in get_files_sorted(base_path, sort, desc=desc):
item_full_path = os.path.join(base_path, item).replace("\\", "/") item_full_path = os.path.join(base_path, item).replace("\\", "/")
if hasattr(os.stat(item_full_path), "st_file_attributes"): if hasattr(os.stat(item_full_path), "st_file_attributes"):
hidden = bool(os.stat(item_full_path).st_file_attributes & stat.FILE_ATTRIBUTE_HIDDEN) hidden = bool(os.stat(item_full_path).st_file_attributes & stat.FILE_ATTRIBUTE_HIDDEN)
@@ -6931,6 +6958,21 @@ def get_files_folders(starting_folder):
socketio.emit("popup_breadcrumbs", breadcrumbs, broadcast=False, room="UI_2") socketio.emit("popup_breadcrumbs", breadcrumbs, broadcast=False, room="UI_2")
socketio.emit("popup_breadcrumbs", breadcrumbs, broadcast=True, room="UI_1") socketio.emit("popup_breadcrumbs", breadcrumbs, broadcast=True, room="UI_1")
def get_files_sorted(path, sort, desc=False):
data = {}
for file in os.scandir(path=path):
if sort == "Modified":
data[file.name] = datetime.datetime.fromtimestamp(file.stat().st_mtime)
elif sort == "Accessed":
data[file.name] = datetime.datetime.fromtimestamp(file.stat().st_atime)
elif sort == "Created":
data[file.name] = datetime.datetime.fromtimestamp(file.stat().st_ctime)
elif sort == "Name":
data[file.name] = file.name
return [key[0] for key in sorted(data.items(), key=lambda kv: (kv[1], kv[0]), reverse=desc)]
#==================================================================# #==================================================================#
# Event triggered when browser SocketIO detects a variable change # Event triggered when browser SocketIO detects a variable change
#==================================================================# #==================================================================#
@@ -7022,7 +7064,7 @@ def UI_2_Set_Selected_Text(data):
# Event triggered when Option is Selected # Event triggered when Option is Selected
#==================================================================# #==================================================================#
@socketio.on('Use Option Text') @socketio.on('Use Option Text')
def UI_2_Set_Selected_Text(data): def UI_2_Use_Option_Text(data):
print("Using Option Text: {}".format(data)) print("Using Option Text: {}".format(data))
if koboldai_vars.prompt == "": if koboldai_vars.prompt == "":
koboldai_vars.prompt = koboldai_vars.actions.get_current_options()[int(data['option'])]['text'] koboldai_vars.prompt = koboldai_vars.actions.get_current_options()[int(data['option'])]['text']
@@ -7111,7 +7153,7 @@ def UI_2_load_model_button(data):
# Event triggered when user clicks the a model # Event triggered when user clicks the a model
#==================================================================# #==================================================================#
@socketio.on('select_model') @socketio.on('select_model')
def UI_2_load_model_button(data): def UI_2_select_model(data):
print(data) print(data)
#We've selected a menu #We've selected a menu
@@ -7169,7 +7211,8 @@ def UI_2_load_story_list(data):
deleteable=True, show_breadcrumbs=True, item_check=valid_story, deleteable=True, show_breadcrumbs=True, item_check=valid_story,
valid_only=True, hide_extention=True, extra_parameter_function=get_story_length, valid_only=True, hide_extention=True, extra_parameter_function=get_story_length,
column_names=['Story Name', 'Action Count'], column_names=['Story Name', 'Action Count'],
column_widths=['auto', '100px']) column_widths=['auto', '100px'],
sort="Modified", desc=True)
def get_story_length(item_full_path, item, valid_selection): def get_story_length(item_full_path, item, valid_selection):
if not valid_selection: if not valid_selection:

View File

@@ -782,7 +782,7 @@ class KoboldStoryRegister(object):
if self.tokenizer is not None: if self.tokenizer is not None:
self.actions[i]['Selected Text Length'] = len(self.tokenizer.encode(text)) self.actions[i]['Selected Text Length'] = len(self.tokenizer.encode(text))
else: else:
self.actions[i]['Selected Text Length'] = None self.actions[i]['Selected Text Length'] = 0
self.actions[i]["In AI Input"] = False self.actions[i]["In AI Input"] = False
process_variable_changes(self.socketio, "story", 'actions', {"id": i, 'action': self.actions[i]}, old) process_variable_changes(self.socketio, "story", 'actions', {"id": i, 'action': self.actions[i]}, old)
ignore = self.koboldai_vars.calc_ai_text() ignore = self.koboldai_vars.calc_ai_text()
@@ -954,7 +954,7 @@ class KoboldStoryRegister(object):
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:
self.actions[action_step]['Selected Text Length'] = None self.actions[action_step]['Selected Text Length'] = 0
del self.actions[action_step]['Options'][option_number] del self.actions[action_step]['Options'][option_number]
#If this is the current spot in the story, advance #If this is the current spot in the story, advance
if action_step-1 == self.action_count: if action_step-1 == self.action_count:
@@ -1023,7 +1023,7 @@ class KoboldStoryRegister(object):
process_variable_changes(self.socketio, "story", 'actions', {"id": key, 'action': self.actions[key]}, None) process_variable_changes(self.socketio, "story", 'actions', {"id": key, 'action': self.actions[key]}, None)
else: else:
for key in self.actions: for key in self.actions:
self.actions[key]['Selected Text Length'] = None self.actions[key]['Selected Text Length'] = 0
process_variable_changes(self.socketio, "story", 'actions', {"id": key, 'action': self.actions[key]}, None) process_variable_changes(self.socketio, "story", 'actions', {"id": key, 'action': self.actions[key]}, None)
ignore = self.koboldai_vars.calc_ai_text() ignore = self.koboldai_vars.calc_ai_text()
@@ -1254,7 +1254,7 @@ class KoboldWorldInfo(object):
if self.tokenizer is not None: if self.tokenizer is not None:
token_length = len(self.tokenizer.encode(content)) token_length = len(self.tokenizer.encode(content))
else: else:
token_length = None token_length = 0
if folder is None: if folder is None:
folder = "root" folder = "root"