Allow for permanent hijacking

This commit is contained in:
oobabooga 2023-02-25 00:55:19 -03:00
parent 111b5d42e7
commit 67623a52b7
2 changed files with 12 additions and 8 deletions

View File

@ -9,15 +9,16 @@ from modules.bot_picture import caption_image
params = {
}
# If 'state' is True, will hijack the next chatbot wrapper call
# with a custom input text
# If 'state' is 'temporary' or 'permanent', will hijack the next
# chatbot wrapper call with a custom input text and optionally
# custom output text
input_hijack = {
'state': False,
'value': ["", ""]
'state': 'off',
'value': []
}
prompt_hijack = {
'state': False,
'state': 'off',
'value': ""
}

View File

@ -91,8 +91,9 @@ def chatbot_wrapper(text, max_new_tokens, do_sample, temperature, top_p, typical
visible_text = None
prompt = None
for extension, _ in extensions_module.iterator():
if hasattr(extension, 'input_hijack') and extension.input_hijack['state'] == True:
extension.input_hijack['state'] = False
if hasattr(extension, 'input_hijack') and extension.input_hijack['state'] in ['temporary', 'permanent']:
if extension.input_hijack['state'] == 'temporary':
extension.input_hijack['state'] = 'off'
values = extension.input_hijack['value']
if len(values) == 2:
text, visible_text = values
@ -102,7 +103,9 @@ def chatbot_wrapper(text, max_new_tokens, do_sample, temperature, top_p, typical
shared.history['internal'].append([text, reply])
shared.history['visible'].append([visible_text, visible_reply])
return shared.history['visible']
if hasattr(extension, 'prompt_hijack') and extension.prompt_hijack['state'] == True:
if hasattr(extension, 'prompt_hijack') and extension.prompt_hijack['state'] in ['temporary', 'permanent']:
if extension.prompt_hijack['state'] == 'temporary':
extension.prompt_hijack['state'] = 'off'
prompt = extension.prompt_hijack['value']
just_started = True