Skip to content

Commit aa66837

Browse files
authored
apply suggestions from reviewers
1 parent 3682ab7 commit aa66837

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

common/chat-parser-xml-toolcall.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,16 @@ void build_grammar_xml_tool_call(common_chat_params & data, const json & tools,
188188
std::vector<std::string> tool_rules;
189189
for (const auto & tool : tools) {
190190
if (!tool.contains("type") || tool.at("type") != "function" || !tool.contains("function")) {
191-
LOG_INF("Skipping tool without function: %s", tool.dump(2).c_str());
191+
LOG_WRN("Skipping tool without function: %s", tool.dump(2).c_str());
192192
continue;
193193
}
194194
const auto & function = tool.at("function");
195195
if (!function.contains("name") || !function.at("name").is_string()) {
196-
LOG_INF("Skipping invalid function (invalid name): %s", function.dump(2).c_str());
196+
LOG_WRN("Skipping invalid function (invalid name): %s", function.dump(2).c_str());
197197
continue;
198198
}
199199
if (!function.contains("parameters") || !function.at("parameters").is_object()) {
200-
LOG_INF("Skipping invalid function (invalid parameters): %s", function.dump(2).c_str());
200+
LOG_WRN("Skipping invalid function (invalid parameters): %s", function.dump(2).c_str());
201201
continue;
202202
}
203203
std::string name = function.at("name");
@@ -210,14 +210,14 @@ void build_grammar_xml_tool_call(common_chat_params & data, const json & tools,
210210
};
211211
std::vector<parameter_rule> arg_rules;
212212
if (!parameters.contains("properties") || !parameters.at("properties").is_object()) {
213-
LOG_INF("Skipping invalid function (invalid properties): %s", function.dump(2).c_str());
213+
LOG_WRN("Skipping invalid function (invalid properties): %s", function.dump(2).c_str());
214214
continue;
215215
} else {
216216
std::vector<std::string> requiredParameters;
217217
if (parameters.contains("required")) {
218218
try { parameters.at("required").get_to(requiredParameters); }
219219
catch (const std::runtime_error&) {
220-
LOG_INF("Invalid function required parameters, ignoring: %s", function.at("required").dump(2).c_str());
220+
LOG_WRN("Invalid function required parameters, ignoring: %s", function.at("required").dump(2).c_str());
221221
}
222222
}
223223
sort_uniq(requiredParameters);
@@ -282,7 +282,6 @@ void build_grammar_xml_tool_call(common_chat_params & data, const json & tools,
282282
});
283283

284284
// grammar trigger for tool call
285-
data.grammar_lazy = true;
286285
data.grammar_triggers.push_back({ COMMON_GRAMMAR_TRIGGER_TYPE_WORD, form.scope_start + form.tool_start });
287286
}
288287
}

common/chat.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -801,8 +801,7 @@ static std::string apply(
801801
const struct templates_params & inputs,
802802
const std::optional<json> & messages_override = std::nullopt,
803803
const std::optional<json> & tools_override = std::nullopt,
804-
const std::optional<json> & additional_context = std::nullopt,
805-
const std::optional<minja::chat_template_options> & tmpl_opts = std::nullopt)
804+
const std::optional<json> & additional_context = std::nullopt)
806805
{
807806
minja::chat_template_inputs tmpl_inputs;
808807
tmpl_inputs.messages = messages_override ? *messages_override : inputs.messages;
@@ -820,11 +819,11 @@ static std::string apply(
820819
// TODO: add flag to control date/time, if only for testing purposes.
821820
// tmpl_inputs.now = std::chrono::system_clock::now();
822821

823-
minja::chat_template_options default_tmpl_opts;
822+
minja::chat_template_options tmpl_opts;
824823
// To avoid double BOS / EOS tokens, we're manually removing begining / trailing tokens
825824
// instead of using `chat_template_options.use_bos_token = false`, since these tokens
826825
// may be needed inside the template / between messages too.
827-
auto result = tmpl.apply(tmpl_inputs, tmpl_opts ? *tmpl_opts : default_tmpl_opts);
826+
auto result = tmpl.apply(tmpl_inputs, tmpl_opts);
828827
if (inputs.add_bos && string_starts_with(result, tmpl.bos_token())) {
829828
result = result.substr(tmpl.bos_token().size());
830829
}
@@ -1817,6 +1816,7 @@ static void common_chat_parse_deepseek_v3_1(common_chat_msg_parser & builder) {
18171816

18181817
static common_chat_params common_chat_params_init_minimax_m2(const common_chat_template & tmpl, const struct templates_params & params) {
18191818
common_chat_params data;
1819+
data.grammar_lazy = params.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;;
18201820

18211821
data.prompt = apply(tmpl, params);
18221822
data.format = COMMON_CHAT_FORMAT_MINIMAX_M2;
@@ -1872,6 +1872,7 @@ static void common_chat_parse_minimax_m2(common_chat_msg_parser & builder) {
18721872

18731873
static common_chat_params common_chat_params_init_qwen3_coder_xml(const common_chat_template & tmpl, const struct templates_params & params) {
18741874
common_chat_params data;
1875+
data.grammar_lazy = params.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;;
18751876

18761877
data.prompt = apply(tmpl, params);
18771878
data.format = COMMON_CHAT_FORMAT_QWEN3_CODER_XML;
@@ -1920,6 +1921,7 @@ static void common_chat_parse_qwen3_coder_xml(common_chat_msg_parser & builder)
19201921

19211922
static common_chat_params common_chat_params_init_kimi_k2(const common_chat_template & tmpl, const struct templates_params & params) {
19221923
common_chat_params data;
1924+
data.grammar_lazy = params.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;;
19231925

19241926
data.prompt = apply(tmpl, params);
19251927
data.format = COMMON_CHAT_FORMAT_KIMI_K2;
@@ -1977,6 +1979,7 @@ static void common_chat_parse_kimi_k2(common_chat_msg_parser & builder) {
19771979

19781980
static common_chat_params common_chat_params_init_apriel_1_5(const common_chat_template & tmpl, const struct templates_params & params) {
19791981
common_chat_params data;
1982+
data.grammar_lazy = params.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;;
19801983

19811984
data.prompt = apply(tmpl, params);
19821985
data.format = COMMON_CHAT_FORMAT_APRIEL_1_5;
@@ -2030,6 +2033,7 @@ static void common_chat_parse_apriel_1_5(common_chat_msg_parser & builder) {
20302033

20312034
static common_chat_params common_chat_params_init_xiaomi_mimo(const common_chat_template & tmpl, const struct templates_params & params) {
20322035
common_chat_params data;
2036+
data.grammar_lazy = params.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;;
20332037

20342038
data.prompt = apply(tmpl, params);
20352039
data.format = COMMON_CHAT_FORMAT_XIAOMI_MIMO;
@@ -2313,6 +2317,7 @@ static void common_chat_parse_gpt_oss(common_chat_msg_parser & builder) {
23132317

23142318
static common_chat_params common_chat_params_init_glm_4_5(const common_chat_template & tmpl, const struct templates_params & inputs) {
23152319
common_chat_params data;
2320+
data.grammar_lazy = inputs.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;
23162321

23172322
std::string prompt = apply(tmpl, inputs);
23182323

0 commit comments

Comments
 (0)