Skip to content

Commit c861f61

Browse files
author
yuan.wang
committed
modify delete mem
1 parent 6b10ce1 commit c861f61

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/memos/api/handlers/memory_handler.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,8 @@ def handle_delete_memories(delete_mem_req: DeleteMemoryRequest, naive_mem_cube:
209209
if naive_mem_cube.pref_mem is not None:
210210
naive_mem_cube.pref_mem.delete(delete_mem_req.memory_ids)
211211
elif delete_mem_req.file_ids is not None:
212-
# TODO: Implement deletion by file_ids
213-
# Need to find memory_ids associated with file_ids and delete them
214-
logger.warning("Deletion by file_ids not implemented yet")
215-
return DeleteMemoryResponse(
216-
message="Deletion by file_ids not implemented yet",
217-
data={"status": "failure"},
212+
naive_mem_cube.text_mem.delete_by_filter(
213+
writable_cube_ids=delete_mem_req.writable_cube_ids, file_ids=delete_mem_req.file_ids
218214
)
219215
elif delete_mem_req.filter is not None:
220216
# TODO: Implement deletion by filter

src/memos/memories/textual/tree.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,28 @@ def delete_all(self) -> None:
339339
logger.error(f"An error occurred while deleting all memories: {e}")
340340
raise
341341

342+
def delete_by_filter(
343+
self,
344+
writable_cube_ids: list[str],
345+
memory_ids: list[str] | None = None,
346+
file_ids: list[str] | None = None,
347+
filter: dict | None = None,
348+
) -> int:
349+
"""Delete memories by filter.
350+
Returns:
351+
int: Number of nodes deleted.
352+
"""
353+
try:
354+
return self.graph_store.delete_node_by_prams(
355+
writable_cube_ids=writable_cube_ids,
356+
memory_ids=memory_ids,
357+
file_ids=file_ids,
358+
filter=filter,
359+
)
360+
except Exception as e:
361+
logger.error(f"An error occurred while deleting memories by filter: {e}")
362+
raise
363+
342364
def load(self, dir: str) -> None:
343365
try:
344366
memory_file = os.path.join(dir, self.config.memory_filename)

0 commit comments

Comments
 (0)