|
|
|
@@ -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 |
|
|
|
) |