From d91126fc64ebd5d28bbd73ca4d15a9daea45c8a2 Mon Sep 17 00:00:00 2001 From: Felix Krones <92753725+felixkrones@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:10:43 +0100 Subject: [PATCH] community[patch]: missing unpack operator for or_clause in pgvector document filter (#16148) - Fix for #16146 - Adding unpack operation to "or" and "and" filter for pgvector retriever. # --- libs/community/langchain_community/vectorstores/pgvector.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/community/langchain_community/vectorstores/pgvector.py b/libs/community/langchain_community/vectorstores/pgvector.py index e57fb16358c..7fed642c45c 100644 --- a/libs/community/langchain_community/vectorstores/pgvector.py +++ b/libs/community/langchain_community/vectorstores/pgvector.py @@ -545,13 +545,13 @@ class PGVector(VectorStore): self._create_filter_clause(key, sub_value) for sub_value in value_case_insensitive[OR] ] - filter_by_metadata = sqlalchemy.or_(or_clauses) + filter_by_metadata = sqlalchemy.or_(*or_clauses) elif AND in map(str.lower, value): and_clauses = [ self._create_filter_clause(key, sub_value) for sub_value in value_case_insensitive[AND] ] - filter_by_metadata = sqlalchemy.and_(and_clauses) + filter_by_metadata = sqlalchemy.and_(*and_clauses) else: filter_by_metadata = None