feat(reminder): 增强定时提醒系统,实现智能用户识别与上下文感知回复
对定时提醒功能进行了重大重构和增强,使其更加智能和人性化。 主要更新包括: - **智能用户识别**: 引入LLM从提醒内容中提取需要@的目标用户,取代了原有的简单正则表达式匹配,能够更准确地理解自然语言指令,如“提醒阿范喝水”。 - **专用提醒回复**: 当提醒任务不包含特定目标用户时(如“提醒我喝水”),系统不再简单回退,而是会调用一个专用的LLM流程,生成一条符合Bot性格的、温暖贴心的提醒消息。 - **上下文传递**: 创建提醒时会保存完整的原始消息,并在触发提醒时将其传递给处理流程。这使得LLM在执行@操作或生成回复时能拥有完整上下文,避免了记忆割裂感。 - **@用户匹配优化**: 增强了`at_user`动作的底层用户匹配逻辑,采用“精确匹配 -> 包含匹配 -> 模糊匹配”的多层策略,显著提高了在群聊中查找目标用户的准确率和鲁棒性。 - **提示词优化**: 全面优化了提醒流程中涉及的LLM提示词,无论是用户提取还是最终的@消息生成,都更具情景感,使Bot的回复更加自然流畅。
This commit is contained in:
@@ -139,9 +139,13 @@ class HeartFCMessageReceiver:
|
||||
from src.chat.chat_loop.proactive.events import ProactiveTriggerEvent
|
||||
|
||||
reminder_content = metadata.get('content', '提醒时间到了')
|
||||
# 使用原始消息内容作为reason,如果没有则使用处理后的内容
|
||||
original_message = metadata.get('original_message', '')
|
||||
reason_content = original_message if original_message else reminder_content
|
||||
|
||||
event = ProactiveTriggerEvent(
|
||||
source="reminder_system",
|
||||
reason=f"定时提醒:{reminder_content}",
|
||||
reason=f"定时提醒:{reason_content}",
|
||||
metadata=metadata,
|
||||
related_message_id=metadata.get("original_message_id")
|
||||
)
|
||||
@@ -179,7 +183,8 @@ class HeartFCMessageReceiver:
|
||||
"content": reminder_event.content,
|
||||
"confidence": reminder_event.confidence,
|
||||
"created_at": datetime.now().isoformat(),
|
||||
"original_message_id": message.message_info.message_id
|
||||
"original_message_id": message.message_info.message_id,
|
||||
"original_message": message.processed_plain_text # 保存完整的原始消息
|
||||
}
|
||||
|
||||
success = await event_scheduler.schedule_event(
|
||||
|
||||
Reference in New Issue
Block a user