From 514ccd6be3ac5c4dc46b10132335868ff3d5d5cb Mon Sep 17 00:00:00 2001 From: A0000Xz <629995608@qq.com> Date: Thu, 26 Jun 2025 23:30:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BFgenerator=E8=83=BD=E5=A4=9F=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=98=AF=E5=90=A6=E5=88=87=E5=8F=A5=E6=88=96?= =?UTF-8?q?=E8=80=85=E7=94=9F=E6=88=90=E9=94=99=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 跨越了三份文件的参数传递(( --- src/chat/replyer/default_generator.py | 8 ++++++-- src/chat/utils/utils.py | 6 +++--- src/plugin_system/apis/generator_api.py | 12 ++++++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index bf247e425..4cc397e89 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -162,6 +162,8 @@ class DefaultReplyer: async def generate_reply_with_context( self, reply_data: Dict[str, Any], + enable_splitter: bool=True, + enable_chinese_typo: bool=True ) -> Tuple[bool, Optional[List[str]]]: """ 回复器 (Replier): 核心逻辑,负责生成回复文本。 @@ -191,7 +193,7 @@ class DefaultReplyer: logger.error(f"{self.log_prefix}LLM 生成失败: {llm_e}") return False, None # LLM 调用失败则无法生成回复 - processed_response = process_llm_response(content) + processed_response = process_llm_response(content,enable_splitter,enable_chinese_typo) # 5. 处理 LLM 响应 if not content: @@ -216,6 +218,8 @@ class DefaultReplyer: async def rewrite_reply_with_context( self, reply_data: Dict[str, Any], + enable_splitter: bool=True, + enable_chinese_typo: bool=True ) -> Tuple[bool, Optional[List[str]]]: """ 表达器 (Expressor): 核心逻辑,负责生成回复文本。 @@ -252,7 +256,7 @@ class DefaultReplyer: logger.error(f"{self.log_prefix}LLM 生成失败: {llm_e}") return False, None # LLM 调用失败则无法生成回复 - processed_response = process_llm_response(content) + processed_response = process_llm_response(content,enable_splitter,enable_chinese_typo) # 5. 处理 LLM 响应 if not content: diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index 592964167..56dd9b435 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -321,7 +321,7 @@ def random_remove_punctuation(text: str) -> str: return result -def process_llm_response(text: str) -> list[str]: +def process_llm_response(text: str, enable_splitter: bool=True, enable_chinese_typo: bool=True) -> list[str]: if not global_config.response_post_process.enable_response_post_process: return [text] @@ -359,14 +359,14 @@ def process_llm_response(text: str) -> list[str]: word_replace_rate=global_config.chinese_typo.word_replace_rate, ) - if global_config.response_splitter.enable: + if global_config.response_splitter.enable and enable_splitter: split_sentences = split_into_sentences_w_remove_punctuation(cleaned_text) else: split_sentences = [cleaned_text] sentences = [] for sentence in split_sentences: - if global_config.chinese_typo.enable: + if global_config.chinese_typo.enable and enable_chinese_typo: typoed_text, typo_corrections = typo_generator.create_typo_sentence(sentence) sentences.append(typoed_text) if typo_corrections: diff --git a/src/plugin_system/apis/generator_api.py b/src/plugin_system/apis/generator_api.py index 8130d9b4f..aa3c41253 100644 --- a/src/plugin_system/apis/generator_api.py +++ b/src/plugin_system/apis/generator_api.py @@ -73,6 +73,8 @@ async def generate_reply( chat_stream=None, action_data: Dict[str, Any] = None, chat_id: str = None, + enable_splitter: bool=True, + enable_chinese_typo: bool=True ) -> Tuple[bool, List[Tuple[str, Any]]]: """生成回复 @@ -80,6 +82,8 @@ async def generate_reply( chat_stream: 聊天流对象(优先) action_data: 动作数据 chat_id: 聊天ID(备用) + enable_splitter: 是否启用消息分割器 + enable_chinese_typo: 是否启用错字生成器 Returns: Tuple[bool, List[Tuple[str, Any]]]: (是否成功, 回复集合) @@ -96,6 +100,8 @@ async def generate_reply( # 调用回复器生成回复 success, reply_set = await replyer.generate_reply_with_context( reply_data=action_data or {}, + enable_splitter=enable_splitter, + enable_chinese_typo=enable_chinese_typo ) if success: @@ -114,6 +120,8 @@ async def rewrite_reply( chat_stream=None, reply_data: Dict[str, Any] = None, chat_id: str = None, + enable_splitter: bool=True, + enable_chinese_typo: bool=True ) -> Tuple[bool, List[Tuple[str, Any]]]: """重写回复 @@ -121,6 +129,8 @@ async def rewrite_reply( chat_stream: 聊天流对象(优先) reply_data: 回复数据 chat_id: 聊天ID(备用) + enable_splitter: 是否启用消息分割器 + enable_chinese_typo: 是否启用错字生成器 Returns: Tuple[bool, List[Tuple[str, Any]]]: (是否成功, 回复集合) @@ -137,6 +147,8 @@ async def rewrite_reply( # 调用回复器重写回复 success, reply_set = await replyer.rewrite_reply_with_context( reply_data=reply_data or {}, + enable_splitter=enable_splitter, + enable_chinese_typo=enable_chinese_typo ) if success: