From 7990219aa4387aa7d86cf320a9c69fb8d44d53f9 Mon Sep 17 00:00:00 2001 From: jyong <718720800@qq.com> Date: Thu, 6 Mar 2025 11:46:46 +0800 Subject: [PATCH] fix metadata --- api/core/workflow/nodes/knowledge_retrieval/entities.py | 4 ++-- .../nodes/knowledge_retrieval/knowledge_retrieval_node.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/core/workflow/nodes/knowledge_retrieval/entities.py b/api/core/workflow/nodes/knowledge_retrieval/entities.py index 6f255c5165..5f1c079691 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/entities.py +++ b/api/core/workflow/nodes/knowledge_retrieval/entities.py @@ -103,9 +103,9 @@ class Condition(BaseModel): Conditon detail """ - metadata_name: str + name: str comparison_operator: SupportedComparisonOperator - value: str | Sequence[str] | None = None + value: str | Sequence[str] | None | int | float = None class MetadataFilteringCondition(BaseModel): 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 ddc2c5ce1d..91d68d6603 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py @@ -301,7 +301,7 @@ class KnowledgeRetrievalNode(LLMNode): ) elif node_data.metadata_filtering_mode == "manual": for condition in node_data.metadata_filtering_conditions.conditions: - metadata_name = condition.metadata_name + metadata_name = condition.name expected_value = condition.value if isinstance(expected_value, str): expected_value = self.graph_runtime_state.variable_pool.convert_template(expected_value).text @@ -380,7 +380,7 @@ class KnowledgeRetrievalNode(LLMNode): return [] return automatic_metadata_filters - def _process_metadata_filter_func(*, condition: str, metadata_name: str, value: str, query): + def _process_metadata_filter_func(self, condition: str, metadata_name: str, value: str, query): match condition: case "contains": query = query.filter(Document.doc_metadata[metadata_name].like(f"%{value}%"))