From 7e78b7fa81eb65d35783af56439dd41f356c6667 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Fri, 18 Jul 2025 11:34:20 +0800 Subject: [PATCH] fix: Multiple recall error when the previous node has no data (#3665) --- .../step_node/reranker_node/impl/base_reranker_node.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/application/flow/step_node/reranker_node/impl/base_reranker_node.py b/apps/application/flow/step_node/reranker_node/impl/base_reranker_node.py index b3f17c364..946399e70 100644 --- a/apps/application/flow/step_node/reranker_node/impl/base_reranker_node.py +++ b/apps/application/flow/step_node/reranker_node/impl/base_reranker_node.py @@ -61,6 +61,12 @@ def reset_result_list(result_list: List[Document], document_list: List[Document] return r +def get_none_result(question): + return NodeResult( + {'document_list': [], 'question': question, + 'result_list': [], 'result': ''}, {}) + + class BaseRerankerNode(IRerankerNode): def save_context(self, details, workflow_manage): self.context['document_list'] = details.get('document_list', []) @@ -73,6 +79,9 @@ class BaseRerankerNode(IRerankerNode): **kwargs) -> NodeResult: self.context['show_knowledge'] = show_knowledge documents = merge_reranker_list(reranker_list) + documents = [d for d in documents if d.page_content and len(d.page_content) > 0] + if len(documents) == 0: + return get_none_result(question) top_n = reranker_setting.get('top_n', 3) self.context['document_list'] = [{'page_content': document.page_content, 'metadata': document.metadata} for document in documents]