fix(redis): do not crash on empty or None filters in search and list (#5446)

Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
Yash Raj Pandey
2026-06-16 16:10:57 +05:30
committed by GitHub
co-authored by kartik-mem0
parent 6a6dfb4935
commit 7c841a2bce
2 changed files with 54 additions and 6 deletions
+12 -6
View File
@@ -142,8 +142,11 @@ class RedisDB(VectorStoreBase):
self.index.load(data, id_field="memory_id")
def search(self, query: str, vectors: list, top_k: int = 5, filters: dict = None):
conditions = [Tag(key) == value for key, value in filters.items() if value is not None]
filter = reduce(lambda x, y: x & y, conditions)
filter = None
if filters:
conditions = [Tag(key) == value for key, value in filters.items() if value is not None]
if conditions:
filter = reduce(lambda x, y: x & y, conditions)
v = VectorQuery(
vector=np.array(vectors, dtype=np.float32).tobytes(),
@@ -312,11 +315,14 @@ class RedisDB(VectorStoreBase):
"""
List all recent created memories from the vector store.
"""
conditions = [Tag(key) == value for key, value in filters.items() if value is not None]
filter = reduce(lambda x, y: x & y, conditions)
query = Query(str(filter)).sort_by("created_at", asc=False)
filter = None
if filters:
conditions = [Tag(key) == value for key, value in filters.items() if value is not None]
if conditions:
filter = reduce(lambda x, y: x & y, conditions)
query = Query(str(filter) if filter is not None else "*").sort_by("created_at", asc=False)
if top_k is not None:
query = Query(str(filter)).sort_by("created_at", asc=False).paging(0, top_k)
query = query.paging(0, top_k)
results = self.index.search(query)
return [