fix(memory): 修复向量重建后保存和统计逻辑
在向量存储重建过程中,移除了冗余的 `save_storage` 调用,因为向量数据在 `store_memories` 步骤中已经被持久化。 同时,改进了重建完成后的日志记录。现在会检查 `unified_storage` 是否存在,以避免在存储未初始化时尝试获取统计数据而引发潜在错误,并提供了更清晰的警告信息。
This commit is contained in:
@@ -19,6 +19,8 @@ from src.chat.memory_system.memory_builder import MemoryBuilder, MemoryExtractio
|
|||||||
from src.chat.memory_system.memory_chunk import MemoryChunk
|
from src.chat.memory_system.memory_chunk import MemoryChunk
|
||||||
from src.chat.memory_system.memory_fusion import MemoryFusionEngine
|
from src.chat.memory_system.memory_fusion import MemoryFusionEngine
|
||||||
from src.chat.memory_system.memory_query_planner import MemoryQueryPlanner
|
from src.chat.memory_system.memory_query_planner import MemoryQueryPlanner
|
||||||
|
|
||||||
|
|
||||||
# 记忆采样模式枚举
|
# 记忆采样模式枚举
|
||||||
class MemorySamplingMode(Enum):
|
class MemorySamplingMode(Enum):
|
||||||
"""记忆采样模式"""
|
"""记忆采样模式"""
|
||||||
@@ -1580,11 +1582,13 @@ class MemorySystem:
|
|||||||
logger.error(f"批量重建向量失败: {e}")
|
logger.error(f"批量重建向量失败: {e}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# 保存重建的向量存储
|
# 向量数据在 store_memories 中已保存,此处无需额外操作
|
||||||
await self.unified_storage.save_storage()
|
if self.unified_storage:
|
||||||
|
storage_stats = self.unified_storage.get_storage_stats()
|
||||||
final_count = self.unified_storage.storage_stats.get("total_vectors", 0)
|
final_count = storage_stats.get("total_vectors", 0)
|
||||||
logger.info(f"✅ 向量存储重建完成,最终向量数量: {final_count}")
|
logger.info(f"✅ 向量存储重建完成,最终向量数量: {final_count}")
|
||||||
|
else:
|
||||||
|
logger.warning("向量存储重建完成,但无法获取最终向量数量,因为存储系统未初始化")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"向量存储重建失败: {e}", exc_info=True)
|
logger.error(f"向量存储重建失败: {e}", exc_info=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user