refactor(chat): 优化聊天日志与分段回复提示词
本次提交主要包含两项优化: 1. **聊天日志增强**: 在接收消息的日志中增加了聊天来源(群聊名称或“私聊”),方便在后台快速定位消息上下文。 2. **分段回复优化**: 简化并明确了分段回复的 LLM 提示词,引导模型生成更自然、简短的回复分段,以改善对话的节奏感。
This commit is contained in:
@@ -420,8 +420,9 @@ class ChatBot:
|
||||
await message.process()
|
||||
|
||||
# 在这里打印[所见]日志,确保在所有处理和过滤之前记录
|
||||
chat_name = chat.group_info.group_name if chat.group_info else "私聊"
|
||||
logger.info(
|
||||
f"\u001b[38;5;118m{message.message_info.user_info.user_nickname}:{message.processed_plain_text}\u001b[0m"
|
||||
f"[{chat_name}]{message.message_info.user_info.user_nickname}:{message.processed_plain_text}\u001b[0m"
|
||||
)
|
||||
|
||||
# 过滤检查
|
||||
|
||||
@@ -1439,18 +1439,15 @@ class DefaultReplyer:
|
||||
if global_config.response_splitter.enable and global_config.response_splitter.split_mode == "llm":
|
||||
split_instruction = """
|
||||
## 消息分段指导
|
||||
为了模仿人类自然的聊天节奏,你需要将回复模拟成多段发送,就像在打字时进行思考和停顿一样。
|
||||
你的任务是将回复分割成多段发送,以模仿人类自然、富有节奏感的聊天方式。
|
||||
|
||||
**核心指导**:
|
||||
- **分段倾向**: **默认情况下,你应该积极地寻找分段点**。只有在内容逻辑上完全不可分割,或者必须作为一整个长句来表达强烈情感时,才选择不分段。大多数情况下,都应保持简短、自然的对话节奏。
|
||||
- **逻辑断点**: 在一个想法说完,准备开始下一个想法时,是分段的好时机。
|
||||
- **情绪转折**: 当情绪发生变化,比如从开心到担忧时,可以通过分段来体现。
|
||||
- **强调信息**: 在需要强调某段关键信息前后,可以使用分段来突出它。
|
||||
- **标点符号处理**: `[SPLIT]` 标记自身就起到了断句的作用,因此在插入 `[SPLIT]` 的位置,如果前面是逗号、句号等标点,请**删除**那个标点符号,避免出现 “内容,[SPLIT]” 这样的情况。
|
||||
- **控制节奏**: 保持分段的平衡,避免过长或过碎。如果一句话很短或逻辑紧密,则不应分段。
|
||||
**核心要点**:
|
||||
- **分段核心**: 在一个相对独立的想法说完后,就插入 `[SPLIT]` 进行分段。这就像真人在聊天时,说完一小句就按下发送键一样。
|
||||
- **倾向短句**: 请优先将回复组织成更短的句子分段发送,这样能让对话显得更轻松、自然。
|
||||
- **标点处理**: `[SPLIT]` 标记本身就代表了停顿,所以在插入它的位置,请确保删除了前面的逗号、句号等标点符号。
|
||||
|
||||
**任务**:
|
||||
请基于以上指导,并结合你的智慧和人设,像一个真人在聊天一样,自然地决定在哪里插入 `[SPLIT]` 标记以进行分段。
|
||||
请基于以上要点,像一个真人在聊天一样,自然地决定在哪里插入 `[SPLIT]` 标记以进行分段。
|
||||
"""
|
||||
# 将分段指令添加到提示词顶部
|
||||
prompt_text = f"{split_instruction}\n{prompt_text}"
|
||||
|
||||
Reference in New Issue
Block a user