From 465dfa27d50a5ffcf856802a3f84051d427d3333 Mon Sep 17 00:00:00 2001 From: Efrey Kong Date: Wed, 2 Jul 2025 12:10:49 +0800 Subject: [PATCH] fix: prevent SQL errors when metadata filter Constant value is None or blank - Added early check in to skip filters where value is None - Updated both and for consistent handling - Prevents type cast errors when users leave metadata filter values blank in Chatflow apps Fixes #21800 --- api/core/rag/retrieval/dataset_retrieval.py | 3 +++ .../nodes/knowledge_retrieval/knowledge_retrieval_node.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index 38c0b540d5..3fca48be22 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/api/core/rag/retrieval/dataset_retrieval.py @@ -1010,6 +1010,9 @@ class DatasetRetrieval: def _process_metadata_filter_func( self, sequence: int, condition: str, metadata_name: str, value: Optional[Any], filters: list ): + if value is None: + return + key = f"{metadata_name}_{sequence}" key_value = f"{metadata_name}_{sequence}_value" match condition: 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 0b9e98f28a..b34d62d669 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py @@ -490,6 +490,9 @@ class KnowledgeRetrievalNode(LLMNode): def _process_metadata_filter_func( self, sequence: int, condition: str, metadata_name: str, value: Optional[Any], filters: list ): + if value is None: + return + key = f"{metadata_name}_{sequence}" key_value = f"{metadata_name}_{sequence}_value" match condition: