@@ -1695,43 +1695,11 @@ static void common_chat_parse(common_chat_msg_parser & builder, common_chat_form
16951695 builder.finish ();
16961696}
16971697
1698- common_chat_msg common_chat_parse (const std::string & input, common_chat_format format, bool is_partial, const std::vector<common_regex> & trigger_regexes ) {
1698+ common_chat_msg common_chat_parse (const std::string & input, common_chat_format format, bool is_partial) {
16991699 auto extract_reasoning = format == COMMON_CHAT_FORMAT_DEEPSEEK_R1_EXTRACT_REASONING
17001700 || format == COMMON_CHAT_FORMAT_HERMES_2_PRO_EXTRACT_REASONING
17011701 || format == COMMON_CHAT_FORMAT_COMMAND_R7B_EXTRACT_REASONING;
17021702
1703- if (is_partial) {
1704- bool found_trigger = false ;
1705- auto earliest_partial_trigger = std::string::npos;
1706-
1707- for (const auto & trigger_regex : trigger_regexes) {
1708- auto match = trigger_regex.search (input, 0 );
1709- if (match.type == COMMON_REGEX_MATCH_TYPE_PARTIAL) {
1710- earliest_partial_trigger = std::min (earliest_partial_trigger, match.groups [0 ].begin );
1711- } else if (match.type == COMMON_REGEX_MATCH_TYPE_FULL) {
1712- if (match.groups [0 ].begin < earliest_partial_trigger) {
1713- found_trigger = true ;
1714- break ;
1715- }
1716- }
1717- }
1718-
1719- if (!found_trigger && earliest_partial_trigger != std::string::npos) {
1720- // Stop stopping at the earliest partial trigger to avoid messing the parsing big time.
1721- auto before_trigger = input.substr (0 , earliest_partial_trigger);
1722- if (before_trigger.empty ()) {
1723- return {};
1724- }
1725- common_chat_msg_parser builder (before_trigger, is_partial, extract_reasoning);
1726- try {
1727- common_chat_parse (builder, format);
1728- } catch (const common_chat_msg_partial_exception & ex) {
1729- LOG_DBG (" Partial parse: %s\n " , ex.what ());
1730- }
1731- return builder.result ();
1732- }
1733- }
1734-
17351703 common_chat_msg_parser builder (input, is_partial, extract_reasoning);
17361704 try {
17371705 common_chat_parse (builder, format);
0 commit comments