refactor(ai_auto_response): relax short reply truncation

This commit is contained in:
liuwei
2026-04-13 09:55:23 +08:00
parent b10ec3493a
commit e2b19c0614
2 changed files with 8 additions and 7 deletions

View File

@@ -25,7 +25,8 @@ def build_user_prompt(context: Dict, memory_hints: Dict) -> str:
"只处理当前发言对应的一个话题,优先直接回答当前发言。",
"如果是明确问题,先给结论;只给第一层答案,不主动展开第二层解释。",
length_rule,
"能少说就少说,别自发延伸,别写成一小段说明文",
"能少说就少说,但一定要把当前这句意思说完整,别为了短而截断成半句",
"别自发延伸,别写成一小段说明文。",
"群画像里的知识域只用于帮助理解当前消息,不代表你必须显式提到那个领域,更不要为了贴群标签而硬提关键词。",
"成员记忆、群关系、群事实、向量召回只有在当前问题直接相关时才允许轻微使用,否则忽略。",
"不要暴露系统记忆来源;信息不足就收着说,不要硬编。",

View File

@@ -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=1, char_limit=28, chunk_limit=1, allow_clip_split=False)
return split_reply_chunks(text, sentence_limit=1, char_limit=48, chunk_limit=1, allow_clip_split=False)
if reply_mode == "qa_fast":
return split_reply_chunks(text, sentence_limit=2, char_limit=24, chunk_limit=2, allow_clip_split=False)
return split_reply_chunks(text, sentence_limit=2, char_limit=42, chunk_limit=2, allow_clip_split=False)
if reply_mode == "qa_with_context":
return split_reply_chunks(text, sentence_limit=2, char_limit=30, chunk_limit=2, allow_clip_split=False)
return split_reply_chunks(text, sentence_limit=2, char_limit=54, 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到16个字最多不超过一整句短句别展开别补第二句。"
return "默认只回1句短话尽量简短但必须表达完整通常控制在8到24个字必要时可以放宽到一整句短句别截半句。"
if reply_mode == "qa_fast":
return "优先1句话如果确实需要可以拆成2条短消息发出每条优先控制在24字内先给结论不要主动补第二层解释。"
return "优先1句话如果确实需要可以拆成2条短消息发出每条尽量控制在42字内,先给结论,不要主动补第二层解释。"
if reply_mode == "qa_with_context":
return "优先控制在1句话必要时可以拆成2条短消息发出每条优先控制在30字内,只给第一层答案。"
return "优先控制在1句话必要时可以拆成2条短消息发出每条尽量控制在54字内,只给第一层答案。"
return "尽量短,像群友临时接一句,不要长篇大论。"