diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index d85f8143..3f723c46 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -402,8 +402,12 @@ def process_llm_response(text: str, enable_splitter: bool = True, enable_chinese sentences.append(sentence) if len(sentences) > max_sentence_num: - logger.warning(f"分割后消息数量过多 ({len(sentences)} 条),返回默认回复") - return [_get_random_default_reply()] + if global_config.response_splitter.enable_overflow_return_all: + logger.warning(f"分割后消息数量过多 ({len(sentences)} 条),合并后一次返回") + sentences = ["".join(sentences)] + else: + logger.warning(f"分割后消息数量过多 ({len(sentences)} 条),返回默认回复") + return [_get_random_default_reply()] # if extracted_contents: # for content in extracted_contents: diff --git a/src/config/official_configs.py b/src/config/official_configs.py index ad933148..e21d8f96 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -626,6 +626,9 @@ class ResponseSplitterConfig(ConfigBase): enable_kaomoji_protection: bool = False """是否启用颜文字保护""" + enable_overflow_return_all: bool = False + """是否在超出句子数量限制时合并后一次性返回""" + @dataclass class TelemetryConfig(ConfigBase):