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
|
||||
for memory_id in accessible_memory_ids:
|
||||
try:
|
||||
memory_client.delete(memory_id)
|
||||
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}")
|
||||
|
||||
|
||||
@@ -360,8 +360,32 @@ async def delete_memories(
|
||||
if not user:
|
||||
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:
|
||||
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)
|
||||
|
||||
return {"message": f"Successfully deleted {len(request.memory_ids)} memories"}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user