diff --git a/llama_index/vector_stores/supabase.py b/llama_index/vector_stores/supabase.py index 24ccf369e66a8a81064c79455fe6f45c5449b594..340c14b55357ad5d1267dde5a244405cd6d1a9a2 100644 --- a/llama_index/vector_stores/supabase.py +++ b/llama_index/vector_stores/supabase.py @@ -1,5 +1,6 @@ import logging import math +from collections import defaultdict from typing import Any, List from llama_index.constants import DEFAULT_EMBEDDING_DIM @@ -74,9 +75,13 @@ class SupabaseVectorStore(VectorStore): def _to_vecs_filters(self, filters: MetadataFilters) -> Any: """Convert llama filters to vecs filters. $eq is the only supported operator.""" - vecs_filter = {} + vecs_filter = defaultdict(list) + filter_cond = f"${filters.condition}" + for f in filters.legacy_filters(): - vecs_filter[f.key] = {"$eq": f.value} + sub_filter = {} + sub_filter[f.key] = {"$eq": f.value} + vecs_filter[filter_cond].append(sub_filter) return vecs_filter def add(self, nodes: List[BaseNode], **add_kwargs: Any) -> List[str]: