Fix memory deletion not removing from vector store (#3610)
This commit is contained in:
@@ -314,7 +314,7 @@ async def delete_all_memories() -> str:
|
|||||||
# delete the accessible memories only
|
# delete the accessible memories only
|
||||||
for memory_id in accessible_memory_ids:
|
for memory_id in accessible_memory_ids:
|
||||||
try:
|
try:
|
||||||
memory_client.delete(memory_id)
|
memory_client.delete(str(memory_id))
|
||||||
except Exception as delete_error:
|
except Exception as delete_error:
|
||||||
logging.warning(f"Failed to delete memory {memory_id} from vector store: {delete_error}")
|
logging.warning(f"Failed to delete memory {memory_id} from vector store: {delete_error}")
|
||||||
|
|
||||||
|
|||||||
@@ -360,8 +360,32 @@ async def delete_memories(
|
|||||||
if not user:
|
if not user:
|
||||||
raise HTTPException(status_code=404, detail="User not found")
|
raise HTTPException(status_code=404, detail="User not found")
|
||||||
|
|
||||||
|
# Get memory client to delete from vector store
|
||||||
|
try:
|
||||||
|
memory_client = get_memory_client()
|
||||||
|
if not memory_client:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=503,
|
||||||
|
detail="Memory client is not available"
|
||||||
|
)
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
|
except Exception as client_error:
|
||||||
|
logging.error(f"Memory client initialization failed: {client_error}")
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=503,
|
||||||
|
detail=f"Memory service unavailable: {str(client_error)}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Delete from vector store then mark as deleted in database
|
||||||
for memory_id in request.memory_ids:
|
for memory_id in request.memory_ids:
|
||||||
|
try:
|
||||||
|
memory_client.delete(str(memory_id))
|
||||||
|
except Exception as delete_error:
|
||||||
|
logging.warning(f"Failed to delete memory {memory_id} from vector store: {delete_error}")
|
||||||
|
|
||||||
update_memory_state(db, memory_id, MemoryState.deleted, user.id)
|
update_memory_state(db, memory_id, MemoryState.deleted, user.id)
|
||||||
|
|
||||||
return {"message": f"Successfully deleted {len(request.memory_ids)} memories"}
|
return {"message": f"Successfully deleted {len(request.memory_ids)} memories"}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user