fix(vector-stores): filter S3 vector list results (#5018)
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
co-authored by
kartik-mem0
parent
d6347f6660
commit
3ac1c9452c
@@ -182,10 +182,6 @@ class S3Vectors(VectorStoreBase):
|
||||
return response.get("index", {})
|
||||
|
||||
def list(self, filters=None, top_k=None):
|
||||
# Note: list_vectors does not support metadata filtering.
|
||||
if filters:
|
||||
logger.warning("S3 Vectors `list` does not support metadata filtering. Ignoring filters.")
|
||||
|
||||
params = {
|
||||
"vectorBucketName": self.vector_bucket_name,
|
||||
"indexName": self.collection_name,
|
||||
@@ -200,7 +196,16 @@ class S3Vectors(VectorStoreBase):
|
||||
all_vectors = []
|
||||
for page in pages:
|
||||
all_vectors.extend(page.get("vectors", []))
|
||||
return [self._parse_output(all_vectors)]
|
||||
results = self._parse_output(all_vectors)
|
||||
if filters:
|
||||
results = [
|
||||
result
|
||||
for result in results
|
||||
if result.payload and all(result.payload.get(k) == v for k, v in filters.items())
|
||||
]
|
||||
if top_k:
|
||||
results = results[:top_k]
|
||||
return [results]
|
||||
|
||||
def reset(self):
|
||||
logger.warning(f"Resetting index {self.collection_name}...")
|
||||
|
||||
Reference in New Issue
Block a user