diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index 62d5e4b8fe..f56b2db8a6 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/api/core/rag/retrieval/dataset_retrieval.py @@ -870,7 +870,7 @@ class DatasetRetrieval: for condition in metadata_filtering_conditions.conditions: # type: ignore metadata_name = condition.name expected_value = condition.value - if expected_value or condition.comparison_operator in ("empty", "not empty"): + if expected_value is not None or condition.comparison_operator in ("empty", "not empty"): if isinstance(expected_value, str): expected_value = self._replace_metadata_filter_value(expected_value, inputs) filters = self._process_metadata_filter_func( diff --git a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py index e602abb66c..5643e37ce0 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py @@ -356,7 +356,7 @@ class KnowledgeRetrievalNode(LLMNode): for condition in node_data.metadata_filtering_conditions.conditions: # type: ignore metadata_name = condition.name expected_value = condition.value - if expected_value or condition.comparison_operator in ("empty", "not empty"): + if expected_value is not None or condition.comparison_operator in ("empty", "not empty"): if isinstance(expected_value, str): expected_value = self.graph_runtime_state.variable_pool.convert_template( expected_value