From 774557cfb41a37221c9fca39dfc1bc1077a9ecf0 Mon Sep 17 00:00:00 2001 From: ochafik Date: Thu, 30 Jan 2025 00:43:06 +0000 Subject: [PATCH] llama 3.1: allow `{name:` & `{function:` syntax even w/ builtin tools (70B model just likes that!) --- common/chat.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/common/chat.cpp b/common/chat.cpp index 95481e8c8..70a6ee45b 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -384,12 +384,12 @@ static common_chat_params common_chat_params_init_llama_3_1_tool_calls(const com const auto & function = tool["function"]; std::string name = function["name"]; auto parameters = function["parameters"]; + builder.resolve_refs(parameters); // https://github.com/meta-llama/llama-stack/tree/main/llama_stack/providers/remote/tool_runtime - if (allow_python_tag_builtin_tools && handle_builtin_tool(name, parameters)) { - return; + if (allow_python_tag_builtin_tools) { + handle_builtin_tool(name, parameters); } - builder.resolve_refs(parameters); tool_rules.push_back( builder.add_rule( name + "-call", @@ -398,12 +398,9 @@ static common_chat_params common_chat_params_init_llama_3_1_tool_calls(const com builder.add_schema(name + "-args", parameters) + " \"}\"")); data.grammar_triggers.push_back({"{\"name\": \"" + name + "\"", /* .at_start = */ true}); - has_function = true; }); - if (has_function) { - data.grammar_triggers.push_back({"{\"name\":", /* .at_start = */ true}); - data.grammar_triggers.push_back({"{\"type\": \"function\"", /* .at_start = */ true}); - } + data.grammar_triggers.push_back({"{\"name\":", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\"type\": \"function\"", /* .at_start = */ true}); if (!builtin_tools.empty()) { data.grammar_triggers.push_back({"<|python_tag|>", /* .at_start = */ false}); }