Skip to content

Commit bc6cec9

Browse files
authored
fix Qwen/QwQ-32B (#79)
1 parent b044249 commit bc6cec9

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

include/minja/chat-template.hpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,15 @@ class chat_template {
162162
}), false);
163163
caps_.supports_tools = contains(out, "some_tool");
164164

165-
auto out_empty = try_raw_render(json::array({dummy_user_msg, {{"role", "assistant"}, {"content", ""}}}), {}, false);
166-
auto out_null = try_raw_render(json::array({dummy_user_msg, {{"role", "assistant"}, {"content", nullptr}}}), {}, false);
165+
const auto render_with_content = [&](const json & content) {
166+
const json assistant_msg {{"role", "assistant"}, {"content", content}};
167+
// Render two assistant messages as some templates like QwQ-32B are handling
168+
// the content differently depending on whether it's the last message or not
169+
// (to remove the <think> tag in all but the last message).
170+
return try_raw_render(json::array({dummy_user_msg, assistant_msg, dummy_user_msg, assistant_msg}), {}, false);
171+
};
172+
auto out_empty = render_with_content("");
173+
auto out_null = render_with_content(json());
167174
caps_.requires_non_null_content = contains(out_empty, user_needle) && !contains(out_null, user_needle);
168175

169176
json j_null;

tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,9 @@ set(MODEL_IDS
323323
Qwen/Qwen3-235B-A22B-Instruct-2507
324324
Qwen/Qwen3-235B-A22B-Thinking-2507
325325
Qwen/Qwen3-Coder-30B-A3B-Instruct
326+
Qwen/QwQ-32B
326327

327328
# Broken, TODO:
328-
# Qwen/QwQ-32B
329329
# ai21labs/AI21-Jamba-1.5-Large # https://github.com/google/minja/issues/8
330330
# Almawave/Velvet-14B
331331
# deepseek-ai/DeepSeek-R1

tests/test-capabilities.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ TEST(CapabilitiesTest, QwQ32B) {
8080
EXPECT_TRUE(caps.supports_system_role);
8181
EXPECT_TRUE(caps.supports_tools);
8282
EXPECT_TRUE(caps.supports_tool_calls);
83-
EXPECT_FALSE(caps.supports_tool_responses);
83+
EXPECT_TRUE(caps.supports_tool_responses);
8484
EXPECT_TRUE(caps.supports_parallel_tool_calls);
8585
EXPECT_TRUE(caps.requires_object_arguments);
8686
// EXPECT_TRUE(caps.requires_non_null_content);

0 commit comments

Comments
 (0)