From 2985575be4af510036812f4e59cb10439e89defc Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Sun, 30 Nov 2025 12:52:28 +0800 Subject: [PATCH] allow assistant prefills, fixed showgui issue --- koboldcpp.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/koboldcpp.py b/koboldcpp.py index 22a165793..37dee913f 100755 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -2787,6 +2787,8 @@ ws ::= | " " | "\n" [ \t]{0,20} tools_message_end = adapter_obj.get("tools_end", "") images_added = [] audio_added = [] + continue_assistant_turn = genparams.get('continue_assistant_turn', False) + latest_turn_was_assistant = False # handle structured outputs respformat = genparams.get('response_format', None) @@ -2837,12 +2839,14 @@ ws ::= | " " | "\n" [ \t]{0,20} for message in messages_array: message_index += 1 + latest_turn_was_assistant = False if message['role'] == "system": messages_string += system_message_start elif message['role'] == "user": messages_string += user_message_start elif message['role'] == "assistant": messages_string += assistant_message_start + latest_turn_was_assistant = True elif message['role'] == "tool": messages_string += tools_message_start tcid = message.get("tool_call_id","") @@ -2922,7 +2926,8 @@ ws ::= | " " | "\n" [ \t]{0,20} elif message['role'] == "tool": messages_string += tools_message_end messages_string += assistant_message_gen - + if (latest_turn_was_assistant and continue_assistant_turn): #allow continue a prefill, chop off end + messages_string = messages_string[:-(len(assistant_message_gen)+len(assistant_message_end))] genparams["prompt"] = messages_string if len(images_added)>0: genparams["images"] = images_added @@ -4460,6 +4465,10 @@ Change Mode
if tmptools and len(tmptools) > 0: use_jinja = False # not allowed to use tools with jinja + # payload modifications for lcpp endpoint. we detect this by the timings_per_token field existing + if "timings_per_token" in genparams: + genparams["continue_assistant_turn"] = True + printablegenparams_raw = truncate_long_json(genparams,trunc_len) utfprint("\nInput: " + json.dumps(printablegenparams_raw,ensure_ascii=False),1) @@ -6320,6 +6329,7 @@ def show_gui(): args.admindir = admin_dir_var.get() args.adminpassword = admin_password_var.get() args.singleinstance = (singleinstance_var.get()==1) + args.showgui = False #prevent showgui from leaking into configs, its cli only def import_vars(dict): global importvars_in_progress