浏览代码

Metadata variable value fix (#16665)

tags/1.2.0
Jyong 7 个月前
父节点
当前提交
86a1859d02
没有帐户链接到提交者的电子邮件

+ 4
- 1
api/core/rag/retrieval/dataset_retrieval.py 查看文件

@@ -900,7 +900,10 @@ class DatasetRetrieval:
return str(inputs.get(key, f"{{{{{key}}}}}"))

pattern = re.compile(r"\{\{(\w+)\}\}")
return pattern.sub(replacer, text)
output = pattern.sub(replacer, text)
if isinstance(output, str):
output = re.sub(r"[\r\n\t]+", " ", output).strip()
return output

def _automatic_metadata_filter_func(
self, dataset_ids: list, query: str, tenant_id: str, user_id: str, metadata_model_config: ModelConfig

+ 8
- 2
api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py 查看文件

@@ -1,5 +1,6 @@
import json
import logging
import re
import time
from collections import defaultdict
from collections.abc import Mapping, Sequence
@@ -360,8 +361,13 @@ class KnowledgeRetrievalNode(LLMNode):
if isinstance(expected_value, str):
expected_value = self.graph_runtime_state.variable_pool.convert_template(
expected_value
).text

).value[0]
if expected_value.value_type == "number":
expected_value = expected_value.value
elif expected_value.value_type == "string":
expected_value = re.sub(r"[\r\n\t]+", " ", expected_value.text).strip()
else:
raise ValueError("Invalid expected metadata value type")
filters = self._process_metadata_filter_func(
condition.comparison_operator, metadata_name, expected_value, filters
)

正在加载...
取消
保存