diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index 8284c9e89..4b02282ce 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -109,7 +109,7 @@ def init_prompt(): ## 任务 -*你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。* +*{chat_scene}* ### 核心任务 - 你现在的主要任务是和 {sender_name} 聊天。{relation_info_block}同时,也有其他用户会参与聊天,你可以参考他们的回复内容,但是你现在想回复{sender_name}的发言。 @@ -169,7 +169,7 @@ If you need to use the search tool, please directly call the function "lpmm_sear logger.debug("[Prompt模式调试] 正在注册normal_style_prompt模板") Prompt( """ -你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。 +{chat_scene} **重要:消息针对性判断** 在回应之前,首先分析消息的针对性: @@ -1178,8 +1178,15 @@ class DefaultReplyer: # 根据配置选择模板 current_prompt_mode = global_config.personality.prompt_mode + # 动态生成聊天场景提示 + if is_group_chat: + chat_scene_prompt = "你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。" + else: + chat_scene_prompt = f"你正在和 {sender} 私下聊天,你需要理解你们的对话并做出自然的回应。" + # 使用新的统一Prompt系统 - 创建PromptParameters prompt_parameters = PromptParameters( + chat_scene=chat_scene_prompt, chat_id=chat_id, is_group_chat=is_group_chat, sender=sender, diff --git a/src/chat/utils/prompt.py b/src/chat/utils/prompt.py index dd6010937..3ae75c923 100644 --- a/src/chat/utils/prompt.py +++ b/src/chat/utils/prompt.py @@ -79,6 +79,9 @@ class PromptParameters: # 可用动作信息 available_actions: Optional[Dict[str, Any]] = None + # 动态生成的聊天场景提示 + chat_scene: str = "" + def validate(self) -> List[str]: """参数验证""" errors = [] @@ -717,6 +720,7 @@ class Prompt: "moderation_prompt": self.parameters.moderation_prompt_block or context_data.get("moderation_prompt", ""), "safety_guidelines_block": self.parameters.safety_guidelines_block or context_data.get("safety_guidelines_block", ""), + "chat_scene": self.parameters.chat_scene or "你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。", } def _prepare_normal_params(self, context_data: Dict[str, Any]) -> Dict[str, Any]: @@ -743,6 +747,7 @@ class Prompt: "moderation_prompt": self.parameters.moderation_prompt_block or context_data.get("moderation_prompt", ""), "safety_guidelines_block": self.parameters.safety_guidelines_block or context_data.get("safety_guidelines_block", ""), + "chat_scene": self.parameters.chat_scene or "你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。", } def _prepare_default_params(self, context_data: Dict[str, Any]) -> Dict[str, Any]: