diff --git a/libs/langchain/langchain/chains/query_constructor/ir.py b/libs/langchain/langchain/chains/query_constructor/ir.py index 04eac8be913..c8d6fc976b6 100644 --- a/libs/langchain/langchain/chains/query_constructor/ir.py +++ b/libs/langchain/langchain/chains/query_constructor/ir.py @@ -81,6 +81,7 @@ class Comparator(str, Enum): """Enumerator of the comparison operators.""" EQ = "eq" + NE = "ne" GT = "gt" GTE = "gte" LT = "lt" diff --git a/libs/langchain/langchain/retrievers/self_query/chroma.py b/libs/langchain/langchain/retrievers/self_query/chroma.py index 9f9900358a1..8c9a79b12d3 100644 --- a/libs/langchain/langchain/retrievers/self_query/chroma.py +++ b/libs/langchain/langchain/retrievers/self_query/chroma.py @@ -17,6 +17,7 @@ class ChromaTranslator(Visitor): """Subset of allowed logical operators.""" allowed_comparators = [ Comparator.EQ, + Comparator.NE, Comparator.GT, Comparator.GTE, Comparator.LT, diff --git a/libs/langchain/langchain/retrievers/self_query/deeplake.py b/libs/langchain/langchain/retrievers/self_query/deeplake.py index 1e65eb39a16..030933b32e8 100644 --- a/libs/langchain/langchain/retrievers/self_query/deeplake.py +++ b/libs/langchain/langchain/retrievers/self_query/deeplake.py @@ -22,6 +22,7 @@ COMPARATOR_TO_TQL = { OPERATOR_TO_TQL = { Operator.AND: "and", Operator.OR: "or", + Operator.NOT: "NOT", } @@ -37,7 +38,7 @@ def can_cast_to_float(string: str) -> bool: class DeepLakeTranslator(Visitor): """Translate `DeepLake` internal query language elements to valid filters.""" - allowed_operators = [Operator.AND, Operator.OR] + allowed_operators = [Operator.AND, Operator.OR, Operator.NOT] """Subset of allowed logical operators.""" allowed_comparators = [ Comparator.EQ, diff --git a/libs/langchain/langchain/retrievers/self_query/pinecone.py b/libs/langchain/langchain/retrievers/self_query/pinecone.py index 003514953cf..a39fc310bf4 100644 --- a/libs/langchain/langchain/retrievers/self_query/pinecone.py +++ b/libs/langchain/langchain/retrievers/self_query/pinecone.py @@ -15,6 +15,7 @@ class PineconeTranslator(Visitor): allowed_comparators = ( Comparator.EQ, + Comparator.NE, Comparator.LT, Comparator.LTE, Comparator.GT,