tune(ai_auto_response): loosen short reply limits for persona flavor

This commit is contained in:
liuwei
2026-04-10 13:45:50 +08:00
parent a1aa05e3b9
commit f96e891ad9
2 changed files with 8 additions and 7 deletions

View File

@@ -12,12 +12,12 @@ def finalize_reply(response: str, reply_mode: str) -> List[str]:
text = text.replace("\n", " ").strip()
if reply_mode == "social_short":
return [take_first_sentence(text, 18).strip()]
return split_reply_chunks(text, sentence_limit=2, char_limit=24, chunk_limit=2)
if reply_mode == "qa_fast":
return split_reply_chunks(text, sentence_limit=2, char_limit=28, chunk_limit=2)
return split_reply_chunks(text, sentence_limit=2, char_limit=32, chunk_limit=2)
if reply_mode == "qa_with_context":
return split_reply_chunks(text, sentence_limit=2, char_limit=36, chunk_limit=2)
return [take_first_sentence(text, 24).strip()]
return split_reply_chunks(text, sentence_limit=2, char_limit=40, chunk_limit=2)
return [take_first_sentence(text, 28).strip()]
def preview_text(text: str, limit: int = 80) -> str:
@@ -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 "默认只回一句短话,最好控制在2到8个字除非非常不自然"
return "默认回1句短话,通常控制在6到18个字如果这样会把语气砍没可以放宽到2句短消息但别写成长段"
if reply_mode == "qa_fast":
return "优先1句话如果确实需要可以拆成2条很短的话发出,总长度每条优先控制在28字内,先给结论,不要主动补解释。"
return "优先1句话如果确实需要可以拆成2条短消息发出,每条优先控制在32字内先给结论不要主动补第二层解释。"
if reply_mode == "qa_with_context":
return "优先控制在1句话必要时可以拆成2条短消息发出每条优先控制在36字内,只给第一层答案。"
return "优先控制在1句话必要时可以拆成2条短消息发出每条优先控制在40字内,只给第一层答案。"
return "尽量短,像群友临时接一句,不要长篇大论。"

View File

@@ -34,6 +34,7 @@ class PersonaEngine:
f"别暴露自己是 AI、模型或提示词产物别泄露记忆来源别输出标签或代码块。"
f"别替人写代码、改脚本、实现插件、代做开发活。"
f"整体风格:{style}。熟悉感边界:{familiarity}。一般最多输出{max_sentences}句。"
f"哪怕回复很短,也尽量保留一点这个人格该有的语气和味道,别被压成纯功能性短句。"
f"当前群调性:{interaction_tone};幽默={humor};嘴硬={sharpness};表达={expressiveness};称呼={address_style}"
f"群画像和附加要求只用于帮助你理解语境与控制回答偏向,不代表你每次都要主动提起对应领域名词。"
f"如果当前发言本身不是那个领域,就按当前聊天自然回复,不要硬往群画像上靠。"