From 5bbd0d9ca9ee4844e36fd873cc1b576f07d3eab4 Mon Sep 17 00:00:00 2001 From: Wonbin Kim <52444137+rst0070@users.noreply.github.com> Date: Wed, 7 May 2025 23:40:32 +0800 Subject: [PATCH] Fix duplicated metadata issue while adding or updating memories (#2592) --- mem0/memory/main.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mem0/memory/main.py b/mem0/memory/main.py index fa37370e..fd02cf57 100644 --- a/mem0/memory/main.py +++ b/mem0/memory/main.py @@ -7,6 +7,7 @@ import logging import os import uuid import warnings +from copy import deepcopy from datetime import datetime from typing import Any, Dict @@ -292,7 +293,7 @@ class Memory(MemoryBase): memory_id = self._create_memory( data=resp.get("text"), existing_embeddings=new_message_embeddings, - metadata=metadata, + metadata=deepcopy(metadata), ) returned_memories.append( { @@ -306,7 +307,7 @@ class Memory(MemoryBase): memory_id=temp_uuid_mapping[resp["id"]], data=resp.get("text"), existing_embeddings=new_message_embeddings, - metadata=metadata, + metadata=deepcopy(metadata), ) returned_memories.append( { @@ -1039,7 +1040,9 @@ class AsyncMemory(MemoryBase): elif resp.get("event") == "ADD": task = asyncio.create_task( 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)) @@ -1049,7 +1052,7 @@ class AsyncMemory(MemoryBase): memory_id=temp_uuid_mapping[resp["id"]], data=resp.get("text"), existing_embeddings=new_message_embeddings, - metadata=metadata, + metadata=deepcopy(metadata), ) ) memory_tasks.append((task, resp, "UPDATE", temp_uuid_mapping[resp["id"]]))