mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-11-01 09:01:57 +00:00
Another attempt by V3.1 non-thinking
This commit is contained in:
@@ -1314,8 +1314,15 @@ static common_chat_params common_chat_params_init_deepseek_r1(const common_chat_
|
|||||||
}
|
}
|
||||||
|
|
||||||
static common_chat_params common_chat_params_init_deepseek_v3_1(const common_chat_template & tmpl, const struct templates_params & inputs) {
|
static common_chat_params common_chat_params_init_deepseek_v3_1(const common_chat_template & tmpl, const struct templates_params & inputs) {
|
||||||
// For now, use the same implementation as R1
|
common_chat_params data;
|
||||||
return common_chat_params_init_deepseek_r1(tmpl, inputs);
|
auto prompt = apply(tmpl, inputs);
|
||||||
|
data.prompt = prompt;
|
||||||
|
data.format = COMMON_CHAT_FORMAT_DEEPSEEK_V3_1;
|
||||||
|
|
||||||
|
// For V3.1, we need to handle thinking mode differently
|
||||||
|
// The template should handle the thinking mode logic
|
||||||
|
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void common_chat_parse_deepseek_r1(common_chat_msg_parser & builder) {
|
static void common_chat_parse_deepseek_r1(common_chat_msg_parser & builder) {
|
||||||
|
|||||||
@@ -152,6 +152,32 @@ static void test_regex() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_deepseek_v3_1() {
|
||||||
|
// Test DeepSeek V3.1 parsing - reasoning content followed by "</think>" and then regular content
|
||||||
|
{
|
||||||
|
common_chat_syntax syntax = {
|
||||||
|
/* .format = */ COMMON_CHAT_FORMAT_DEEPSEEK_V3_1,
|
||||||
|
/* .reasoning_format = */ COMMON_REASONING_FORMAT_DEEPSEEK,
|
||||||
|
/* .reasoning_in_content = */ false,
|
||||||
|
/* .thinking_forced_open = */ false,
|
||||||
|
/* .parse_tool_calls = */ true,
|
||||||
|
};
|
||||||
|
common_chat_msg_parser builder("REASONING</think><function=finish>\n<parameter=message>ok
|
||||||
|
static void test_deepseek_v3_1() {
|
||||||
|
// Test DeepSeek V3.1 parsing - reasoning content followed by "</think>" and then regular content
|
||||||
|
{
|
||||||
|
common_chat_syntax syntax = {
|
||||||
|
/* .format = */ COMMON_CHAT_FORMAT_DEEPSEEK_V3_1,
|
||||||
|
/* .reasoning_format = */ COMMON_REASONING_FORMAT_DEEPSEEK,
|
||||||
|
/* .reasoning_in_content = */ false,
|
||||||
|
/* .thinking_forced_open = */ false,
|
||||||
|
/* .parse_tool_calls = */ true,
|
||||||
|
};
|
||||||
|
common_chat_msg_parser builder("REASONING</think><function=finish>\n<parameter=message>ok
|
||||||
|
static void test_deepseek_v3_1() {
|
||||||
|
// Test DeepSeek V3.1 parsing - reasoning content followed by "</think>" and then regular content
|
||||||
|
{
|
||||||
|
common_chat_msg_parser builder("REASONING</think><function=finish>\n<parameter=message>ok
|
||||||
const std::vector<std::string> barely_healable_jsons = {
|
const std::vector<std::string> barely_healable_jsons = {
|
||||||
"{",
|
"{",
|
||||||
"{\"",
|
"{\"",
|
||||||
|
|||||||
@@ -774,6 +774,9 @@ struct server_task_result_cmpl_final : server_task_result {
|
|||||||
if (!stream && !probs_output.empty()) {
|
if (!stream && !probs_output.empty()) {
|
||||||
res["completion_probabilities"] = completion_token_output::probs_vector_to_json(probs_output, post_sampling_probs);
|
res["completion_probabilities"] = completion_token_output::probs_vector_to_json(probs_output, post_sampling_probs);
|
||||||
}
|
}
|
||||||
|
if (!oaicompat_msg.reasoning_content.empty()) {
|
||||||
|
res["reasoning_content"] = oaicompat_msg.reasoning_content;
|
||||||
|
}
|
||||||
return response_fields.empty() ? res : json_get_nested_values(response_fields, res);
|
return response_fields.empty() ? res : json_get_nested_values(response_fields, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user