diff --git a/kcpp_adapters/AutoGuess-NoThink.json b/kcpp_adapters/AutoGuess-NoThink.json index d77d9d835..ab85d9c7d 100644 --- a/kcpp_adapters/AutoGuess-NoThink.json +++ b/kcpp_adapters/AutoGuess-NoThink.json @@ -84,7 +84,8 @@ "system_end": "\n", "user_start": "<|turn>user\n", "user_end": "\n", - "assistant_start": "<|turn>model\n<|channel>thought\n", + "assistant_start": "<|turn>model\n", + "assistant_gen": "<|turn>model\n<|channel>thought\n", "assistant_end": "\n" } }, { diff --git a/kcpp_adapters/AutoGuess.json b/kcpp_adapters/AutoGuess.json index e8acbdb41..bad838d04 100644 --- a/kcpp_adapters/AutoGuess.json +++ b/kcpp_adapters/AutoGuess.json @@ -84,7 +84,8 @@ "system_end": "\n", "user_start": "<|turn>user\n", "user_end": "\n", - "assistant_start": "<|turn>model\n<|channel>thought\n", + "assistant_start": "<|turn>model\n", + "assistant_gen": "<|turn>model\n<|channel>thought\n", "assistant_end": "\n" } }, { diff --git a/kcpp_adapters/Gemma-4-26B-31B.json b/kcpp_adapters/Gemma-4-26B-31B.json index 6fbb6e4f5..f6b24b17c 100644 --- a/kcpp_adapters/Gemma-4-26B-31B.json +++ b/kcpp_adapters/Gemma-4-26B-31B.json @@ -3,6 +3,7 @@ "system_end": "\n", "user_start": "<|turn>user\n", "user_end": "\n", - "assistant_start": "<|turn>model\n<|channel>thought\n", + "assistant_start": "<|turn>model\n", + "assistant_gen": "<|turn>model\n<|channel>thought\n", "assistant_end": "\n" } \ No newline at end of file diff --git a/koboldcpp.py b/koboldcpp.py index 3e6154c7b..7da53c1d5 100755 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -3522,7 +3522,8 @@ ws ::= | " " | "\n" [ \t]{0,20} #tool calls only possible if forced, or if ending with assistant tag adapter_obj = {} if chatcompl_adapter is None else chatcompl_adapter assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n") - used_tool_json = determine_tool_json_to_use(genparams, genparams.get('prompt', ""), assistant_message_start, True) + assistant_message_gen = adapter_obj.get("assistant_gen", assistant_message_start) + used_tool_json = determine_tool_json_to_use(genparams, genparams.get('prompt', ""), assistant_message_gen, True) if used_tool_json and not genparams.get('grammar', ""): toolparamjson = None toolname = None @@ -3542,8 +3543,7 @@ ws ::= | " " | "\n" [ \t]{0,20} except Exception: pass tool_json_formatting_instruction = f"\nPlease use the provided schema to fill the parameters to create a function call for {toolname}, in the following format: " + json.dumps([{"id": "call_001", "type": "function", "function": {"name": f"{toolname}", "arguments": {"first property key": "first property value", "second property key": "second property value"}}}], indent=0) - genparams["prompt"] += f"\n\nJSON Schema:\n{used_tool_json}\n\n{tool_json_formatting_instruction}{assistant_message_start}" - + genparams["prompt"] += f"\n\nJSON Schema:\n{used_tool_json}\n\n{tool_json_formatting_instruction}{assistant_message_gen}" elif api_format==3 or api_format==4 or api_format==7: default_adapter = {} if chatcompl_adapter is None else chatcompl_adapter