diff --git a/html_generator.py b/html_generator.py
index 93540ff..e5b6f82 100644
--- a/html_generator.py
+++ b/html_generator.py
@@ -161,7 +161,7 @@ def generate_4chan_html(f):
return output
-def generate_chat_html(_history, name1, name2, character):
+def generate_chat_html(history, name1, name2, character):
css = """
.chat {
margin-left: auto;
@@ -234,13 +234,6 @@ def generate_chat_html(_history, name1, name2, character):
img = f'
'
break
- history = copy.deepcopy(_history)
- for i in range(len(history)):
- if '<|BEGIN-VISIBLE-CHAT|>' in history[i][0]:
- history[i][0] = history[i][0].replace('<|BEGIN-VISIBLE-CHAT|>', '')
- history = history[i:]
- break
-
for i,_row in enumerate(history[::-1]):
row = _row.copy()
row[0] = re.sub(r"[\\]*\*", r"*", row[0])
diff --git a/server.py b/server.py
index e939e34..bff7882 100644
--- a/server.py
+++ b/server.py
@@ -98,7 +98,7 @@ def load_model(model_name):
settings.append(f"max_memory={{0: '{args.gpu_memory}GiB', 'cpu': '99GiB'}}")
if args.disk:
if args.disk_cache_dir is not None:
- settings.append("offload_folder='"+args.disk_cache_dir+"'")
+ settings.append(f"offload_folder='{args.disk_cache_dir}'")
else:
settings.append("offload_folder='cache'")
if args.load_in_8bit:
@@ -265,6 +265,15 @@ if args.chat or args.cai_chat:
question = question.replace('<|BEGIN-VISIBLE-CHAT|>', '')
return question
+ def remove_example_dialogue_from_history(history):
+ _history = copy.deepcopy(history)
+ for i in range(len(_history)):
+ if '<|BEGIN-VISIBLE-CHAT|>' in _history[i][0]:
+ _history[i][0] = _history[i][0].replace('<|BEGIN-VISIBLE-CHAT|>', '')
+ _history = _history[i:]
+ break
+ return _history
+
def chatbot_wrapper(text, tokens, inference_settings, selected_model, name1, name2, context, check, history_size):
question = generate_chat_prompt(text, tokens, name1, name2, context, history_size)
history.append(['', ''])
@@ -300,9 +309,9 @@ if args.chat or args.cai_chat:
next_character_substring_found = True
if not next_character_substring_found:
- yield history
+ yield remove_example_dialogue_from_history(history)
- yield history
+ yield remove_example_dialogue_from_history(history)
def cai_chatbot_wrapper(text, tokens, inference_settings, selected_model, name1, name2, context, check, history_size):
for history in chatbot_wrapper(text, tokens, inference_settings, selected_model, name1, name2, context, check, history_size):
@@ -327,17 +336,10 @@ if args.chat or args.cai_chat:
return generate_chat_html(history, name1, name2, character)
def save_history():
- _history = copy.deepcopy(history)
- for i in range(len(_history)):
- if '<|BEGIN-VISIBLE-CHAT|>' in history[i][0]:
- _history[i][0] = _history[i][0].replace('<|BEGIN-VISIBLE-CHAT|>', '')
- _history = _history[i:]
- break
-
if not Path('logs').exists():
Path('logs').mkdir()
with open(Path('logs/conversation.json'), 'w') as f:
- f.write(json.dumps({'data': _history}))
+ f.write(json.dumps({'data': history}))
return Path('logs/conversation.json')
def load_history(file):
@@ -389,10 +391,11 @@ if args.chat or args.cai_chat:
context = settings['context_pygmalion']
name2 = settings['name2_pygmalion']
+ _history = remove_example_dialogue_from_history(history)
if args.cai_chat:
- return name2, context, generate_chat_html(history, name1, name2, character)
+ return name2, context, generate_chat_html(_history, name1, name2, character)
else:
- return name2, context, history
+ return name2, context, _history
suffix = '_pygmalion' if 'pygmalion' in model_name.lower() else ''
with gr.Blocks(css=css+".h-\[40vh\] {height: 66.67vh} .gradio-container {max-width: 800px; margin-left: auto; margin-right: auto}", analytics_enabled=False) as interface: