Fix duplicated metadata issue while adding or updating memories (#2592)

This commit is contained in:
Wonbin Kim
2025-05-07 23:40:32 +08:00
committed by GitHub
parent 641be2878d
commit 5bbd0d9ca9

View File

@@ -7,6 +7,7 @@ import logging
import os import os
import uuid import uuid
import warnings import warnings
from copy import deepcopy
from datetime import datetime from datetime import datetime
from typing import Any, Dict from typing import Any, Dict
@@ -292,7 +293,7 @@ class Memory(MemoryBase):
memory_id = self._create_memory( memory_id = self._create_memory(
data=resp.get("text"), data=resp.get("text"),
existing_embeddings=new_message_embeddings, existing_embeddings=new_message_embeddings,
metadata=metadata, metadata=deepcopy(metadata),
) )
returned_memories.append( returned_memories.append(
{ {
@@ -306,7 +307,7 @@ class Memory(MemoryBase):
memory_id=temp_uuid_mapping[resp["id"]], memory_id=temp_uuid_mapping[resp["id"]],
data=resp.get("text"), data=resp.get("text"),
existing_embeddings=new_message_embeddings, existing_embeddings=new_message_embeddings,
metadata=metadata, metadata=deepcopy(metadata),
) )
returned_memories.append( returned_memories.append(
{ {
@@ -1039,7 +1040,9 @@ class AsyncMemory(MemoryBase):
elif resp.get("event") == "ADD": elif resp.get("event") == "ADD":
task = asyncio.create_task( task = asyncio.create_task(
self._create_memory( self._create_memory(
data=resp.get("text"), existing_embeddings=new_message_embeddings, metadata=metadata data=resp.get("text"),
existing_embeddings=new_message_embeddings,
metadata=deepcopy(metadata),
) )
) )
memory_tasks.append((task, resp, "ADD", None)) memory_tasks.append((task, resp, "ADD", None))
@@ -1049,7 +1052,7 @@ class AsyncMemory(MemoryBase):
memory_id=temp_uuid_mapping[resp["id"]], memory_id=temp_uuid_mapping[resp["id"]],
data=resp.get("text"), data=resp.get("text"),
existing_embeddings=new_message_embeddings, existing_embeddings=new_message_embeddings,
metadata=metadata, metadata=deepcopy(metadata),
) )
) )
memory_tasks.append((task, resp, "UPDATE", temp_uuid_mapping[resp["id"]])) memory_tasks.append((task, resp, "UPDATE", temp_uuid_mapping[resp["id"]]))