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