diff --git a/common/chaton.hpp b/common/chaton.hpp index c9a879e33..1140ba409 100644 --- a/common/chaton.hpp +++ b/common/chaton.hpp @@ -428,9 +428,7 @@ inline bool chaton_tmpl_apply_ex( return false; } ChatParts cp = {}; - std::stringstream ss; std::string globalBegin = chaton_tmpl_role_kv(tmpl, K_GLOBAL, {K_BEGIN}); - ss << globalBegin; cp.add_part(ChatParts::S, globalBegin); int cntSystem = 0; int cntUser = 0; @@ -444,63 +442,47 @@ inline bool chaton_tmpl_apply_ex( auto end = chaton_tmpl_role_kv(tmpl, role, {K_END}); if (role == K_SYSTEM) { cntSystem += 1; - ss << begin << prefix; cp.add_part(ChatParts::S, begin); cp.add_part(ChatParts::S, prefix); } else if (role == K_USER) { cntUser += 1; if ((cntSystem == 1) && (cntUser == 1)) { if (conMeta[tmpl][K_SYSTEMUSER_1ST_USER_HAS_BEGIN]) { - ss << begin; cp.add_part(ChatParts::S, begin); } if (conMeta[tmpl][K_SYSTEMUSER_1ST_USER_HAS_PREFIX]) { - ss << prefix; cp.add_part(ChatParts::S, prefix); } } else { - ss << begin << prefix; cp.add_part(ChatParts::S, begin); cp.add_part(ChatParts::S, prefix); } } else { cntOthers += 1; - ss << begin << prefix; cp.add_part(ChatParts::S, begin); cp.add_part(ChatParts::S, prefix); } - ss << content; cp.add_part(ChatParts::N, content); if (role == K_SYSTEM) { if (chaton_tmpl_kv_bool(tmpl, K_SYSTEMUSER_SYSTEM_HAS_SUFFIX)) { - ss << suffix; cp.add_part(ChatParts::S, suffix); } if (chaton_tmpl_kv_bool(tmpl, K_SYSTEMUSER_SYSTEM_HAS_END)) { - ss << end; cp.add_part(ChatParts::S, end); } } else { - ss << suffix << end; cp.add_part(ChatParts::S, suffix); cp.add_part(ChatParts::S, end); } } if (alertAssistantAtEnd) { auto assistantBeginPrefix = chaton_tmpl_role_kv(tmpl, K_ASSISTANT, {K_BEGIN, K_PREFIX}); - ss << assistantBeginPrefix; cp.add_part(ChatParts::S, assistantBeginPrefix); } auto globalEnd = chaton_tmpl_role_kv(tmpl, K_GLOBAL, {K_END}); - ss << globalEnd; cp.add_part(ChatParts::S, globalEnd); cp.dump(); - tagged = ss.str(); - std::string cpStr = cp.str(); - if (tagged != cpStr) { - LOG_TEELN("DBUG:%s:Mismatch between CP[%s] and SS[%s]", __func__, cpStr.c_str(), tagged.c_str()); - exit(2); - } + tagged = cp.str(); LOGLN("DBUG:%s:%s:%s", __func__, tmpl.c_str(), tagged.c_str()); LOGLN("DBUG:%s:%s:CntSys[%d]:CntUsr[%d]:CntOthers[%d]", __func__, tmpl.c_str(), cntSystem, cntUser, cntOthers); types = cp.get_types();