refactor(chat): 简化记忆构建和回复生成逻辑
移除记忆构建过程中的系统标识符和时间戳,简化提示词模板,使对话更加自然流畅。减少冗余的回复规则和约束,专注于生成简洁、口语化的回复内容。
This commit is contained in:
@@ -199,9 +199,8 @@ class HippocampusSampler:
|
|||||||
logger.warning("无法从消息样本生成可读文本")
|
logger.warning("无法从消息样本生成可读文本")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# 添加当前日期信息
|
# 直接使用对话文本,不添加系统标识符
|
||||||
current_date = f"当前日期: {datetime.now().isoformat()}"
|
input_text = readable_text
|
||||||
input_text = f"{current_date}\n{readable_text}"
|
|
||||||
|
|
||||||
logger.debug(f"开始构建记忆,文本长度: {len(input_text)}")
|
logger.debug(f"开始构建记忆,文本长度: {len(input_text)}")
|
||||||
|
|
||||||
@@ -550,9 +549,7 @@ class HippocampusSampler:
|
|||||||
async def _build_fused_conversation_text(self, fused_messages: list[list[dict[str, Any]]]) -> str:
|
async def _build_fused_conversation_text(self, fused_messages: list[list[dict[str, Any]]]) -> str:
|
||||||
"""构建融合后的对话文本"""
|
"""构建融合后的对话文本"""
|
||||||
try:
|
try:
|
||||||
# 添加批次标识
|
conversation_parts = []
|
||||||
current_date = f"海马体批量采样 - {datetime.now().isoformat()}\n"
|
|
||||||
conversation_parts = [current_date]
|
|
||||||
|
|
||||||
for group_idx, message_group in enumerate(fused_messages):
|
for group_idx, message_group in enumerate(fused_messages):
|
||||||
if not message_group:
|
if not message_group:
|
||||||
|
|||||||
@@ -120,33 +120,19 @@ def init_prompt():
|
|||||||
### 核心任务
|
### 核心任务
|
||||||
- 你现在的主要任务是和 {sender_name} 聊天。同时,也有其他用户会参与聊天,你可以参考他们的回复内容,但是你现在想回复{sender_name}的发言。
|
- 你现在的主要任务是和 {sender_name} 聊天。同时,也有其他用户会参与聊天,你可以参考他们的回复内容,但是你现在想回复{sender_name}的发言。
|
||||||
|
|
||||||
- {reply_target_block} 你需要生成一段紧密相关且能推动对话的回复。
|
- {reply_target_block} 你需要生成一段紧密相关的回复。
|
||||||
|
|
||||||
## 规则
|
## 规则
|
||||||
{safety_guidelines_block}
|
{safety_guidelines_block}
|
||||||
**重要提醒:**
|
**重要提醒:**
|
||||||
- **已读历史消息仅作为当前聊天情景的参考**
|
- **已读历史消息仅作为当前聊天情景的参考**
|
||||||
- **动作执行对象只能是未读历史消息中的消息**
|
- **未读历史消息是你需要回应的对象**
|
||||||
- **请优先对兴趣值高的消息做出回复**(兴趣度标注在未读消息末尾)
|
|
||||||
|
|
||||||
在回应之前,首先分析消息的针对性:
|
你的回复应该是一条简短、完整且口语化的回复。
|
||||||
1. **直接针对你**:@你、回复你、明确询问你 → 必须回应
|
|
||||||
2. **间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与
|
|
||||||
3. **他人对话**:与你无关的私人交流 → 通常不参与
|
|
||||||
4. **重复内容**:他人已充分回答的问题 → 避免重复
|
|
||||||
|
|
||||||
你的回复应该:
|
|
||||||
1. 明确回应目标消息,而不是宽泛地评论。
|
|
||||||
2. 可以分享你的看法、提出相关问题,或者开个合适的玩笑。
|
|
||||||
3. 目的是让对话更有趣、更深入。
|
|
||||||
4. 不要浮夸,不要夸张修辞,不要输出多余内容(包括前后缀,冒号和引号,括号(),表情包,at或 @等 )。
|
|
||||||
最终请输出一条简短、完整且口语化的回复。
|
|
||||||
|
|
||||||
--------------------------------
|
--------------------------------
|
||||||
{time_block}
|
{time_block}
|
||||||
|
|
||||||
注意不要复读你前面发过的内容,意思相近也不行。
|
|
||||||
|
|
||||||
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
||||||
{moderation_prompt}
|
{moderation_prompt}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user