fix bug: update vector store access and memory list handling

This commit is contained in:
dengjiaji 2025-11-06 18:16:42 +08:00
parent d87dbb65f9
commit ad0c8dd633
2 changed files with 9 additions and 11 deletions

View file

@ -188,10 +188,10 @@ class ComparativeExtractionOp(BaseAsyncOp):
failure_texts = [merge_messages_content(seq) for seq in failure_step_sequences]
# Get embedding vectors
if hasattr(self.context, 'vector_store') and self.context.vector_store and hasattr(
self.context.vector_store, 'embedding_model'):
success_embeddings = self.context.vector_store.embedding_model.get_embeddings(success_texts)
failure_embeddings = self.context.vector_store.embedding_model.get_embeddings(failure_texts)
if hasattr(self, 'vector_store') and self.vector_store and hasattr(
self.vector_store, 'embedding_model'):
success_embeddings = self.vector_store.embedding_model.get_embeddings(success_texts)
failure_embeddings = self.vector_store.embedding_model.get_embeddings(failure_texts)
# Calculate similarity and find most similar pairs
similarity_threshold = self.op_params.get("similarity_threshold", 0.3)

View file

@ -13,7 +13,7 @@ class MemoryDeduplicationOp(BaseAsyncOp):
async def async_execute(self):
"""Remove duplicate task memories"""
# Get task memories to deduplicate
task_memories: List[BaseMemory] = self.context.memory_list
task_memories: List[BaseMemory] = self.context.response.metadata.get("memory_list", [])
if not task_memories:
logger.info("No task memories found for deduplication")
@ -28,7 +28,7 @@ class MemoryDeduplicationOp(BaseAsyncOp):
f"Deduplication complete: {len(deduplicated_task_memories)} deduplicated task memories out of {len(task_memories)}")
# Update context
self.context.memory_list = deduplicated_task_memories
self.context.response.metadata["memory_list"] = deduplicated_task_memories
async def _deduplicate_task_memories(self, task_memories: List[BaseMemory]) -> List[BaseMemory]:
"""Remove duplicate task memories"""
@ -70,11 +70,11 @@ class MemoryDeduplicationOp(BaseAsyncOp):
async def _get_existing_task_memory_embeddings(self, workspace_id: str) -> List[List[float]]:
"""Get embeddings of existing task memories"""
try:
if not hasattr(self.context, 'vector_store') or not self.context.vector_store or not workspace_id:
if not hasattr(self, 'vector_store') or not self.vector_store or not workspace_id:
return []
# Query existing task memory nodes
existing_nodes = await self.context.vector_store.async_search(
existing_nodes = await self.vector_store.async_search(
query="...", # Empty query to get all
workspace_id=workspace_id,
top_k=self.op_params.get("max_existing_task_memories", 1000)
@ -97,12 +97,10 @@ class MemoryDeduplicationOp(BaseAsyncOp):
def _get_task_memory_embedding(self, task_memory: BaseMemory) -> List[float] | None:
"""Generate embedding for task memory"""
try:
if not hasattr(self.context, 'vector_store') or not self.context.vector_store:
return None
# Combine task memory description and content for embedding
text_for_embedding = f"{task_memory.when_to_use} {task_memory.content}"
embeddings = self.context.vector_store.embedding_model.get_embeddings([text_for_embedding])
embeddings = self.vector_store.embedding_model.get_embeddings([text_for_embedding])
if embeddings and len(embeddings) > 0:
return embeddings[0]