diff --git a/plugins/ai_auto_response/core/prompt_builder.py b/plugins/ai_auto_response/core/prompt_builder.py index 0aa151a..36907df 100644 --- a/plugins/ai_auto_response/core/prompt_builder.py +++ b/plugins/ai_auto_response/core/prompt_builder.py @@ -25,6 +25,7 @@ def build_user_prompt(context: Dict, memory_hints: Dict) -> str: "只处理当前发言对应的一个话题,优先直接回答当前发言。", "如果是明确问题,先给结论;只给第一层答案,不主动展开第二层解释。", length_rule, + "能少说就少说,别自发延伸,别写成一小段说明文。", "群画像里的知识域只用于帮助理解当前消息,不代表你必须显式提到那个领域,更不要为了贴群标签而硬提关键词。", "成员记忆、群关系、群事实、向量召回只有在当前问题直接相关时才允许轻微使用,否则忽略。", "不要暴露系统记忆来源;信息不足就收着说,不要硬编。", diff --git a/plugins/ai_auto_response/core/reply_formatter.py b/plugins/ai_auto_response/core/reply_formatter.py index d3c60bf..fc0f2ac 100644 --- a/plugins/ai_auto_response/core/reply_formatter.py +++ b/plugins/ai_auto_response/core/reply_formatter.py @@ -12,11 +12,11 @@ def finalize_reply(response: str, reply_mode: str) -> List[str]: text = text.replace("\n", " ").strip() if reply_mode == "social_short": - return split_reply_chunks(text, sentence_limit=2, char_limit=42, chunk_limit=2, allow_clip_split=False) + return split_reply_chunks(text, sentence_limit=1, char_limit=28, chunk_limit=1, allow_clip_split=False) if reply_mode == "qa_fast": - return split_reply_chunks(text, sentence_limit=2, char_limit=32, chunk_limit=2, allow_clip_split=False) + return split_reply_chunks(text, sentence_limit=2, char_limit=24, chunk_limit=2, allow_clip_split=False) if reply_mode == "qa_with_context": - return split_reply_chunks(text, sentence_limit=2, char_limit=40, chunk_limit=2, allow_clip_split=False) + return split_reply_chunks(text, sentence_limit=2, char_limit=30, chunk_limit=2, allow_clip_split=False) return [take_first_sentence(text, 28).strip()] @@ -29,11 +29,11 @@ def preview_text(text: str, limit: int = 80) -> str: def build_length_rule(reply_mode: str) -> str: if reply_mode == "social_short": - return "默认回1句短话,通常控制在6到24个字;如果为了保留语气和完整意思,可以放宽到一整句短句,别硬砍半句,也别写成长段。" + return "默认只回1句短话,通常控制在6到16个字;最多不超过一整句短句,别展开,别补第二句。" if reply_mode == "qa_fast": - return "优先1句话;如果确实需要,可以拆成2条短消息发出,每条优先控制在32字内,先给结论,不要主动补第二层解释。" + return "优先1句话;如果确实需要,可以拆成2条短消息发出,每条优先控制在24字内,先给结论,不要主动补第二层解释。" if reply_mode == "qa_with_context": - return "优先控制在1句话;必要时可以拆成2条短消息发出,每条优先控制在40字内,只给第一层答案。" + return "优先控制在1句话;必要时可以拆成2条短消息发出,每条优先控制在30字内,只给第一层答案。" return "尽量短,像群友临时接一句,不要长篇大论。"