tune(ai_auto_response): shorten llm replies

This commit is contained in:
liuwei
2026-04-13 09:05:41 +08:00
parent 4e7a8e6798
commit 0e3eda8865
2 changed files with 7 additions and 6 deletions

View File

@@ -25,6 +25,7 @@ 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=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 "尽量短,像群友临时接一句,不要长篇大论。"