Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions metagpt/actions/action_node.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import ast
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Expand Down Expand Up @@ -578,14 +579,14 @@ async def xml_fill(self, context: str, images: Optional[Union[str, list[str]]] =
extracted_data[field_name] = raw_value.lower() in ("true", "yes", "1", "on", "True")
elif field_type == list:
try:
extracted_data[field_name] = eval(raw_value)
extracted_data[field_name] = ast.literal_eval(raw_value)
if not isinstance(extracted_data[field_name], list):
raise ValueError
except:
extracted_data[field_name] = [] # 默认空列表
elif field_type == dict:
try:
extracted_data[field_name] = eval(raw_value)
extracted_data[field_name] = ast.literal_eval(raw_value)
if not isinstance(extracted_data[field_name], dict):
raise ValueError
except:
Expand Down
3 changes: 2 additions & 1 deletion metagpt/strategy/tot.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import ast
# -*- coding: utf-8 -*-
# @Date : 12/23/2023 4:51 PM
# @Author : stellahong (stellahong@fuzhi.ai)
Expand Down Expand Up @@ -63,7 +64,7 @@ async def generate_thoughts(self, current_state="", current_node=None) -> List[T
)
rsp = await self.llm.aask(msg=state_prompt + "\n" + OUTPUT_FORMAT)
thoughts = CodeParser.parse_code(text=rsp)
thoughts = eval(thoughts)
thoughts = ast.literal_eval(thoughts)
# fixme 避免不跟随,生成过多nodes
# valid_thoughts = [_node for idx, _node in enumerate(thoughts) if idx < self.n_generate_sample]
return self.thought_tree.update_node(thoughts, current_node=current_node)
Expand Down
3 changes: 2 additions & 1 deletion metagpt/utils/serialize.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import ast
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Desc : the implement of serialization and deserialization
Expand Down Expand Up @@ -53,7 +54,7 @@ def actionoutput_str_to_mapping(mapping: dict) -> dict:
if value == "(<class 'str'>, Ellipsis)":
new_mapping[key] = (str, ...)
else:
new_mapping[key] = eval(value) # `"'(list[str], Ellipsis)"` to `(list[str], ...)`
new_mapping[key] = ast.literal_eval(value) # `"'(list[str], Ellipsis)"` to `(list[str], ...)`
return new_mapping


Expand Down
Loading