fix: remove the literal_eval function

This commit is contained in:
Novice 2025-03-20 19:55:05 +08:00
parent 1f46d69e9e
commit c83d45c2c8

View File

@ -1,5 +1,4 @@
import json
from ast import literal_eval
from collections.abc import Generator, Mapping, Sequence
from typing import Any, cast
@ -144,18 +143,19 @@ class AgentNode(ToolNode):
raise ValueError(f"Variable {agent_input.value} does not exist")
parameter_value = variable.value
elif agent_input.type in {"mixed", "constant"}:
segment_group = variable_pool.convert_template(str(agent_input.value))
try:
parameter_value = json.dumps(agent_input.value, ensure_ascii=False)
except TypeError:
parameter_value = str(agent_input.value)
segment_group = variable_pool.convert_template(parameter_value)
parameter_value = segment_group.log if for_log else segment_group.text
try:
parameter_value = json.loads(parameter_value)
except json.JSONDecodeError:
parameter_value = parameter_value
else:
raise ValueError(f"Unknown agent input type '{agent_input.type}'")
value = parameter_value.strip()
if (parameter_value.startswith("{") and parameter_value.endswith("}")) or (
parameter_value.startswith("[") and parameter_value.endswith("]")
):
try:
value = literal_eval(parameter_value)
except:
value = json.loads(parameter_value.replace("'", '"')) # transform string to python object
value = parameter_value
if parameter.type == "array[tools]":
value = cast(list[dict[str, Any]], value)
value = [tool for tool in value if tool.get("enabled", False)]