Skip to content

Commit f25339c

Browse files
committed
handle empty objects returned by tool calls, also remove misinterpretation of the tools calls instruct tag within ChatML autoguess
1 parent b7b3e0d commit f25339c

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

kcpp_adapters/AutoGuess.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
"user_start": "<|im_start|>user\n",
2020
"user_end": "<|im_end|>\n",
2121
"assistant_start": "<|im_start|>assistant\n",
22-
"assistant_end": "<|im_end|>\n",
23-
"tools_start": "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n\n<tools>\n",
24-
"tools_end": "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n"
22+
"assistant_end": "<|im_end|>\n"
2523
}
2624
}, {
2725
"search": ["<|im_user|>user<|im_middle|>", "<|im_assistant|>assistant<|im_middle|>", "<|im_end|>"],

koboldcpp.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2286,7 +2286,7 @@ def transform_genparams(genparams, api_format):
22862286
user_message_end = adapter_obj.get("user_end", "")
22872287
assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n")
22882288
assistant_message_end = adapter_obj.get("assistant_end", "")
2289-
tools_message_start = adapter_obj.get("tools_start", "")
2289+
tools_message_start = adapter_obj.get("tools_start", "\nTool Results:\n")
22902290
tools_message_end = adapter_obj.get("tools_end", "")
22912291
images_added = []
22922292
audio_added = []
@@ -2365,6 +2365,13 @@ def transform_genparams(genparams, api_format):
23652365
for img in imgs:
23662366
images_added.append(img)
23672367
if not curr_content:
2368+
if "tool_calls" in message:
2369+
try:
2370+
if len(message.get("tool_calls"))>0:
2371+
tcfnname = message.get("tool_calls")[0].get("function").get("name")
2372+
messages_string += f"\n(Made a function call to {tcfnname})\n"
2373+
except Exception:
2374+
messages_string += "\n(Made a function call)\n"
23682375
pass # do nothing
23692376
elif isinstance(curr_content, str):
23702377
messages_string += curr_content
@@ -2738,7 +2745,7 @@ def run_blocking(): # api format 1=basic,2=kai,3=oai,4=oai-chat
27382745
for tc in tool_calls:
27392746
tcarg = tc.get("function",{}).get("arguments",None)
27402747
tc["id"] = f"call_{random.randint(10000, 99999)}"
2741-
if tcarg and not isinstance(tcarg, str):
2748+
if tcarg is not None and not isinstance(tcarg, str):
27422749
tc["function"]["arguments"] = json.dumps(tcarg)
27432750
recvtxt = None
27442751
currfinishreason = "tool_calls"

0 commit comments

Comments
 (0)