From ad613a180bd1777b591bde0f496e730af987d708 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sun, 5 Oct 2025 13:19:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(memory):=20=E4=BF=AE=E5=A4=8D=E5=90=91?= =?UTF-8?q?=E9=87=8F=E9=87=8D=E5=BB=BA=E5=90=8E=E4=BF=9D=E5=AD=98=E5=92=8C?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在向量存储重建过程中,移除了冗余的 `save_storage` 调用,因为向量数据在 `store_memories` 步骤中已经被持久化。 同时,改进了重建完成后的日志记录。现在会检查 `unified_storage` 是否存在,以避免在存储未初始化时尝试获取统计数据而引发潜在错误,并提供了更清晰的警告信息。 --- src/chat/memory_system/memory_system.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/chat/memory_system/memory_system.py b/src/chat/memory_system/memory_system.py index 746164ae7..a6c3e863a 100644 --- a/src/chat/memory_system/memory_system.py +++ b/src/chat/memory_system/memory_system.py @@ -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_fusion import MemoryFusionEngine from src.chat.memory_system.memory_query_planner import MemoryQueryPlanner + + # 记忆采样模式枚举 class MemorySamplingMode(Enum): """记忆采样模式""" @@ -1580,11 +1582,13 @@ class MemorySystem: logger.error(f"批量重建向量失败: {e}") continue - # 保存重建的向量存储 - await self.unified_storage.save_storage() - - final_count = self.unified_storage.storage_stats.get("total_vectors", 0) - logger.info(f"✅ 向量存储重建完成,最终向量数量: {final_count}") + # 向量数据在 store_memories 中已保存,此处无需额外操作 + if self.unified_storage: + storage_stats = self.unified_storage.get_storage_stats() + final_count = storage_stats.get("total_vectors", 0) + logger.info(f"✅ 向量存储重建完成,最终向量数量: {final_count}") + else: + logger.warning("向量存储重建完成,但无法获取最终向量数量,因为存储系统未初始化") except Exception as e: logger.error(f"向量存储重建失败: {e}", exc_info=True)