浏览代码

Metadata variable value fix (#16665)

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

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

return str(inputs.get(key, f"{{{{{key}}}}}")) return str(inputs.get(key, f"{{{{{key}}}}}"))


pattern = re.compile(r"\{\{(\w+)\}\}") 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( def _automatic_metadata_filter_func(
self, dataset_ids: list, query: str, tenant_id: str, user_id: str, metadata_model_config: ModelConfig 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 查看文件

import json import json
import logging import logging
import re
import time import time
from collections import defaultdict from collections import defaultdict
from collections.abc import Mapping, Sequence from collections.abc import Mapping, Sequence
if isinstance(expected_value, str): if isinstance(expected_value, str):
expected_value = self.graph_runtime_state.variable_pool.convert_template( expected_value = self.graph_runtime_state.variable_pool.convert_template(
expected_value 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( filters = self._process_metadata_filter_func(
condition.comparison_operator, metadata_name, expected_value, filters condition.comparison_operator, metadata_name, expected_value, filters
) )

正在加载...
取消
保存