From f02bbb250de64efd56dde8816ba11b398e43e9d4 Mon Sep 17 00:00:00 2001 From: geekan Date: Thu, 28 Dec 2023 16:03:16 +0800 Subject: [PATCH] action node test --- metagpt/actions/action_node.py | 14 -------------- tests/metagpt/actions/test_action_node.py | 18 ++++++++++++------ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/metagpt/actions/action_node.py b/metagpt/actions/action_node.py index 9534e91c5..d80327a8c 100644 --- a/metagpt/actions/action_node.py +++ b/metagpt/actions/action_node.py @@ -348,17 +348,3 @@ class ActionNode: cls = self.create_children_class() self.instruct_content = cls(**tmp) return self - - -def action_node_example(): - node = ActionNode(key="key-0", expected_type=str, instruction="instruction-a", example="example-b") - - logger.info(node.compile(context="123", schema="raw", mode="auto")) - logger.info(node.compile(context="123", schema="json", mode="auto")) - logger.info(node.compile(context="123", schema="markdown", mode="auto")) - logger.info(node.to_dict()) - logger.info(node) - - -if __name__ == "__main__": - action_node_example() diff --git a/tests/metagpt/actions/test_action_node.py b/tests/metagpt/actions/test_action_node.py index ebc428d75..335a62b92 100644 --- a/tests/metagpt/actions/test_action_node.py +++ b/tests/metagpt/actions/test_action_node.py @@ -12,6 +12,7 @@ import pytest from metagpt.actions import Action from metagpt.actions.action_node import ActionNode from metagpt.environment import Environment +from metagpt.llm import LLM from metagpt.roles import Role from metagpt.schema import Message from metagpt.team import Team @@ -81,14 +82,19 @@ async def test_action_node_one_layer(): @pytest.mark.asyncio async def test_action_node_two_layer(): - node_a = ActionNode(key="key-a", expected_type=str, instruction="i-a", example="e-a") - node_b = ActionNode(key="key-b", expected_type=str, instruction="i-b", example="e-b") + node_a = ActionNode(key="reasoning", expected_type=str, instruction="reasoning step by step", example="") + node_b = ActionNode(key="answer", expected_type=str, instruction="the final answer", example="") - root = ActionNode.from_children(key="", nodes=[node_a, node_b]) - assert "key-a" in root.children + root = ActionNode.from_children(key="detail answer", nodes=[node_a, node_b]) + assert "reasoning" in root.children assert node_b in root.children.values() - json_template = root.compile(context="123", schema="json", mode="auto") - assert "i-a" in json_template + + # FIXME: ADD MARKDOWN SUPPORT. NEED TO TUNE MARKDOWN SYMBOL FIRST. + answer1 = await root.fill(context="what's the answer to 123+456?", schema="json", strgy="simple", llm=LLM()) + assert "579" in answer1.content + + answer2 = await root.fill(context="what's the answer to 123+456?", schema="json", strgy="complex", llm=LLM()) + assert "579" in answer2.content t_dict = {