mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2025-09-09 08:34:37 +00:00
handle empty objects returned by tool calls, also remove misinterpretation of the tools calls instruct tag within ChatML autoguess
This commit is contained in:
parent
b7b3e0d2a7
commit
f25339c92b
2 changed files with 10 additions and 5 deletions
|
@ -19,9 +19,7 @@
|
|||
"user_start": "<|im_start|>user\n",
|
||||
"user_end": "<|im_end|>\n",
|
||||
"assistant_start": "<|im_start|>assistant\n",
|
||||
"assistant_end": "<|im_end|>\n",
|
||||
"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",
|
||||
"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"
|
||||
"assistant_end": "<|im_end|>\n"
|
||||
}
|
||||
}, {
|
||||
"search": ["<|im_user|>user<|im_middle|>", "<|im_assistant|>assistant<|im_middle|>", "<|im_end|>"],
|
||||
|
|
11
koboldcpp.py
11
koboldcpp.py
|
@ -2286,7 +2286,7 @@ def transform_genparams(genparams, api_format):
|
|||
user_message_end = adapter_obj.get("user_end", "")
|
||||
assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n")
|
||||
assistant_message_end = adapter_obj.get("assistant_end", "")
|
||||
tools_message_start = adapter_obj.get("tools_start", "")
|
||||
tools_message_start = adapter_obj.get("tools_start", "\nTool Results:\n")
|
||||
tools_message_end = adapter_obj.get("tools_end", "")
|
||||
images_added = []
|
||||
audio_added = []
|
||||
|
@ -2365,6 +2365,13 @@ ws ::= | " " | "\n" [ \t]{0,20}
|
|||
for img in imgs:
|
||||
images_added.append(img)
|
||||
if not curr_content:
|
||||
if "tool_calls" in message:
|
||||
try:
|
||||
if len(message.get("tool_calls"))>0:
|
||||
tcfnname = message.get("tool_calls")[0].get("function").get("name")
|
||||
messages_string += f"\n(Made a function call to {tcfnname})\n"
|
||||
except Exception:
|
||||
messages_string += "\n(Made a function call)\n"
|
||||
pass # do nothing
|
||||
elif isinstance(curr_content, str):
|
||||
messages_string += curr_content
|
||||
|
@ -2738,7 +2745,7 @@ class KcppServerRequestHandler(http.server.SimpleHTTPRequestHandler):
|
|||
for tc in tool_calls:
|
||||
tcarg = tc.get("function",{}).get("arguments",None)
|
||||
tc["id"] = f"call_{random.randint(10000, 99999)}"
|
||||
if tcarg and not isinstance(tcarg, str):
|
||||
if tcarg is not None and not isinstance(tcarg, str):
|
||||
tc["function"]["arguments"] = json.dumps(tcarg)
|
||||
recvtxt = None
|
||||
currfinishreason = "tool_calls"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue