Skip to content

Commit 422df5d

Browse files
author
Olivier Chafik
committed
Llama 3.x tools: accept / trigger on more varied spaced outputs
1 parent b31259b commit 422df5d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

common/chat.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,14 +384,19 @@ static common_chat_params common_chat_params_init_llama_3_1_tool_calls(const com
384384
tool_rules.push_back(
385385
builder.add_rule(
386386
name + "-call",
387-
"\"{\" ( \"\\\"type\\\": \\\"function\\\", \" | space ) "
387+
"\"{\" space "
388+
"( \"\\\"type\\\":\" space \"\\\"function\\\",\" space )? "
388389
"\"\\\"name\\\": \\\"" + name + "\\\", \\\"parameters\\\": \" " +
389390
builder.add_schema(name + "-args", parameters) +
390391
" \"}\""));
391392
data.grammar_triggers.push_back({"{\"name\": \"" + name + "\"", /* .at_start = */ true});
392393
});
393394
data.grammar_triggers.push_back({"{\"name\":", /* .at_start = */ true});
395+
data.grammar_triggers.push_back({"{\n \"name\":", /* .at_start = */ true});
396+
data.grammar_triggers.push_back({"{\n \"name\":", /* .at_start = */ true});
394397
data.grammar_triggers.push_back({"{\"type\": \"function\"", /* .at_start = */ true});
398+
data.grammar_triggers.push_back({"{\n \"type\": \"function\"", /* .at_start = */ true});
399+
data.grammar_triggers.push_back({"{\n \"type\": \"function\"", /* .at_start = */ true});
395400
if (!builtin_tools.empty()) {
396401
data.grammar_triggers.push_back({"<|python_tag|>", /* .at_start = */ false});
397402
}

0 commit comments

Comments
 (0)