feat(memory): 实现增强记忆系统并完全替换原有架构
引入全新的增强记忆系统,彻底取代海马体记忆架构 删除旧版记忆系统相关模块,包括Hippocampus、异步包装器和优化器 重构消息处理流程,集成增强记忆系统的存储和检索功能 更新配置结构以支持增强记忆的各项参数设置 禁用原有定时任务,采用内置维护机制保证系统性能
This commit is contained in:
@@ -2,7 +2,8 @@ import asyncio
|
||||
import math
|
||||
from typing import Tuple
|
||||
|
||||
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
||||
# 旧的Hippocampus系统已被移除,现在使用增强记忆系统
|
||||
# from src.chat.memory_system.enhanced_memory_manager import enhanced_memory_manager
|
||||
from src.chat.message_receive.message import MessageRecv, MessageRecvS4U
|
||||
from maim_message.message_base import GroupInfo
|
||||
from src.chat.message_receive.storage import MessageStorage
|
||||
@@ -40,11 +41,31 @@ async def _calculate_interest(message: MessageRecv) -> Tuple[float, bool]:
|
||||
|
||||
if global_config.memory.enable_memory:
|
||||
with Timer("记忆激活"):
|
||||
interested_rate, _ = await hippocampus_manager.get_activate_from_text(
|
||||
message.processed_plain_text,
|
||||
fast_retrieval=True,
|
||||
)
|
||||
logger.debug(f"记忆激活率: {interested_rate:.2f}")
|
||||
# 使用新的增强记忆系统计算兴趣度
|
||||
try:
|
||||
from src.chat.memory_system.enhanced_memory_integration import recall_memories
|
||||
|
||||
# 检索相关记忆来估算兴趣度
|
||||
enhanced_memories = await recall_memories(
|
||||
query=message.processed_plain_text,
|
||||
user_id=str(message.user_info.user_id),
|
||||
chat_id=message.chat_id
|
||||
)
|
||||
|
||||
# 基于检索结果计算兴趣度
|
||||
if enhanced_memories:
|
||||
# 有相关记忆,兴趣度基于相似度计算
|
||||
max_score = max(score for _, score in enhanced_memories)
|
||||
interested_rate = min(max_score, 1.0) # 限制在0-1之间
|
||||
else:
|
||||
# 没有相关记忆,给予基础兴趣度
|
||||
interested_rate = 0.1
|
||||
|
||||
logger.debug(f"增强记忆系统兴趣度: {interested_rate:.2f}")
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"增强记忆系统兴趣度计算失败: {e}")
|
||||
interested_rate = 0.1 # 默认基础兴趣度
|
||||
|
||||
text_len = len(message.processed_plain_text)
|
||||
# 根据文本长度分布调整兴趣度,采用分段函数实现更精确的兴趣度计算
|
||||
|
||||
@@ -4,7 +4,8 @@ from src.chat.utils.prompt import Prompt, global_prompt_manager
|
||||
from src.chat.utils.chat_message_builder import build_readable_messages, get_raw_msg_before_timestamp_with_chat
|
||||
import time
|
||||
from src.chat.utils.utils import get_recent_group_speaker
|
||||
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
||||
# 旧的Hippocampus系统已被移除,现在使用增强记忆系统
|
||||
# from src.chat.memory_system.enhanced_memory_manager import enhanced_memory_manager
|
||||
import random
|
||||
from datetime import datetime
|
||||
import asyncio
|
||||
@@ -171,16 +172,26 @@ class PromptBuilder:
|
||||
|
||||
@staticmethod
|
||||
async def build_memory_block(text: str) -> str:
|
||||
related_memory = await hippocampus_manager.get_memory_from_text(
|
||||
text=text, max_memory_num=2, max_memory_length=2, max_depth=3, fast_retrieval=False
|
||||
)
|
||||
# 使用新的增强记忆系统检索记忆
|
||||
try:
|
||||
from src.chat.memory_system.enhanced_memory_integration import recall_memories
|
||||
|
||||
related_memory_info = ""
|
||||
if related_memory:
|
||||
for memory in related_memory:
|
||||
related_memory_info += memory[1]
|
||||
return await global_prompt_manager.format_prompt("memory_prompt", memory_info=related_memory_info)
|
||||
return ""
|
||||
enhanced_memories = await recall_memories(
|
||||
query=text,
|
||||
user_id="system", # 系统查询
|
||||
chat_id="system"
|
||||
)
|
||||
|
||||
related_memory_info = ""
|
||||
if enhanced_memories and enhanced_memories.get("has_memories"):
|
||||
for memory in enhanced_memories.get("memories", []):
|
||||
related_memory_info += memory.get("content", "") + " "
|
||||
return await global_prompt_manager.format_prompt("memory_prompt", memory_info=related_memory_info.strip())
|
||||
return ""
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"增强记忆系统检索失败: {e}")
|
||||
return ""
|
||||
|
||||
@staticmethod
|
||||
async def build_chat_history_prompts(chat_stream: ChatStream, message: MessageRecvS4U):
|
||||
|
||||
Reference in New Issue
Block a user