mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2026-05-08 01:41:37 +00:00
escape clause for tool calling
This commit is contained in:
parent
3e4a33499f
commit
978d755ddc
1 changed files with 11 additions and 7 deletions
18
koboldcpp.py
18
koboldcpp.py
|
|
@ -2477,8 +2477,9 @@ def determine_tool_json_to_use(genparams, curr_ctx, assistant_message_start, is_
|
|||
for name in toolnames:
|
||||
pollgrammar += ("" if pollgrammar=="" else " | ")
|
||||
pollgrammar += "\"" + name + "\""
|
||||
pollgrammar += " | \"no_tool\""
|
||||
pollgrammar = r'root ::= ' + pollgrammar
|
||||
decide_tool_prompt = "Which of the listed tools should be used next? Pick exactly one. (Reply directly with the selected tool's name):"
|
||||
decide_tool_prompt = "Which of the listed tools should be used next? Pick exactly one. If no tool is suitable, reply no_tool. (Reply directly with the selected tool's name):"
|
||||
temp_poll = {
|
||||
"prompt": f"{curr_ctx}\n\nTool List:\n{tools_string}\n\n{decide_tool_prompt}{assistant_message_start}",
|
||||
"max_length":16,
|
||||
|
|
@ -2491,12 +2492,15 @@ def determine_tool_json_to_use(genparams, curr_ctx, assistant_message_start, is_
|
|||
temp_poll_result = generate(genparams=temp_poll)
|
||||
if temp_poll_result:
|
||||
raw = temp_poll_result['text'].lower()
|
||||
for name in toolnames:
|
||||
if name.lower() in raw:
|
||||
used_tool_json = extract_tool_info_from_tool_array(name, tools_array)
|
||||
if not args.quiet:
|
||||
print(f"\nAttempting to use tool: {name}")
|
||||
break
|
||||
if "no_tool" in raw:
|
||||
print(f"\nNo suitable tool found.")
|
||||
else:
|
||||
for name in toolnames:
|
||||
if name.lower() in raw:
|
||||
used_tool_json = extract_tool_info_from_tool_array(name, tools_array)
|
||||
if not args.quiet:
|
||||
print(f"\nAttempting to use tool: {name}")
|
||||
break
|
||||
|
||||
return used_tool_json
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue