diff --git a/modules/chat.py b/modules/chat.py index 920c0f7b..6640776f 100644 --- a/modules/chat.py +++ b/modules/chat.py @@ -577,7 +577,7 @@ def find_all_histories_with_first_prompts(state): data = json.load(f) first_prompt = "" - if 'visible' in data and len(data['visible']) > 0: + if data and 'visible' in data and len(data['visible']) > 0: if data['internal'][0][0] == '<|BEGIN-VISIBLE-CHAT|>': if len(data['visible']) > 1: first_prompt = html.unescape(data['visible'][1][0]) diff --git a/modules/llama_cpp_python_hijack.py b/modules/llama_cpp_python_hijack.py index f3f3f560..c9813708 100644 --- a/modules/llama_cpp_python_hijack.py +++ b/modules/llama_cpp_python_hijack.py @@ -100,9 +100,11 @@ def eval_with_progress(self, tokens: Sequence[int]): def monkey_patch_llama_cpp_python(lib): + if getattr(lib.Llama, '_is_patched', False): + # If the patch is already applied, do nothing + return def my_generate(self, *args, **kwargs): - if shared.args.streaming_llm: new_sequence = args[0] past_sequence = self._input_ids @@ -116,3 +118,6 @@ def monkey_patch_llama_cpp_python(lib): lib.Llama.eval = eval_with_progress lib.Llama.original_generate = lib.Llama.generate lib.Llama.generate = my_generate + + # Set the flag to indicate that the patch has been applied + lib.Llama._is_patched = True