mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +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
	 Jesse CreateThis
					Jesse CreateThis