Do not send empty user input as part of the prompt.

However, if extensions modify the empty prompt to be non-empty,
it'l still work as before.
This commit is contained in:
Vladimir Belitskiy 2023-03-20 14:16:48 -04:00 committed by unknown
parent ca47e016b4
commit e96687b1d6

View File

@ -33,12 +33,14 @@ def generate_chat_prompt(user_input, max_new_tokens, name1, name2, context, chat
i = len(shared.history['internal'])-1 i = len(shared.history['internal'])-1
while i >= 0 and len(encode(''.join(rows), max_new_tokens)[0]) < max_length: while i >= 0 and len(encode(''.join(rows), max_new_tokens)[0]) < max_length:
rows.insert(1, f"{name2}: {shared.history['internal'][i][1].strip()}\n") rows.insert(1, f"{name2}: {shared.history['internal'][i][1].strip()}\n")
if not (shared.history['internal'][i][0] == '<|BEGIN-VISIBLE-CHAT|>'): prev_user_input = shared.history['internal'][i][0]
if prev_user_input and not shared.history['internal'][i][0] == '<|BEGIN-VISIBLE-CHAT|>':
rows.insert(1, f"{name1}: {shared.history['internal'][i][0].strip()}\n") rows.insert(1, f"{name1}: {shared.history['internal'][i][0].strip()}\n")
i -= 1 i -= 1
if not impersonate: if not impersonate:
rows.append(f"{name1}: {user_input}\n") if user_input:
rows.append(f"{name1}: {user_input}\n")
rows.append(apply_extensions(f"{name2}:", "bot_prefix")) rows.append(apply_extensions(f"{name2}:", "bot_prefix"))
limit = 3 limit = 3
else: else: