Skip to content

Commit 56f7e38

Browse files
committed
This fixes reasoning, but breaks normal content. We need state in the
chat parser.
1 parent f0da116 commit 56f7e38

File tree

1 file changed

+2
-16
lines changed

1 file changed

+2
-16
lines changed

common/chat.cpp

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,22 +1322,8 @@ static common_chat_params common_chat_params_init_deepseek_v3_1(const common_cha
13221322
{"thinking", inputs.enable_thinking},
13231323
};
13241324

1325-
// For DeepSeek V3.1, we need to set prefix on assistant messages to trigger <think> generation
1326-
json adjusted_messages = inputs.messages;
1327-
if (inputs.enable_thinking) {
1328-
adjusted_messages = json::array();
1329-
for (const auto & msg : inputs.messages) {
1330-
auto adjusted_msg = msg;
1331-
// Set prefix on assistant messages to trigger <think> generation
1332-
if (msg.is_object() && msg.contains("role") && msg["role"] == "assistant") {
1333-
adjusted_msg["prefix"] = "<think>";
1334-
}
1335-
adjusted_messages.push_back(adjusted_msg);
1336-
}
1337-
}
1338-
13391325
auto prompt = apply(tmpl, inputs,
1340-
/* messages_override= */ adjusted_messages,
1326+
/* messages_override= */ inputs.messages,
13411327
/* tools_override= */ std::nullopt,
13421328
additional_context);
13431329
data.prompt = prompt;
@@ -1392,7 +1378,7 @@ static void common_chat_parse_deepseek_v3_1(common_chat_msg_parser & builder) {
13921378
builder.add_content(builder.consume_rest());
13931379
} else {
13941380
// If no "</think>" tag found, treat everything as regular content
1395-
builder.add_content(builder.consume_rest());
1381+
builder.add_reasoning_content(builder.consume_rest());
13961382
}
13971383
}
13981384

0 commit comments

Comments
 (0)