From 6cde039f7f29daadc0719901d729b7557269fac3 Mon Sep 17 00:00:00 2001 From: kkdev163 Date: Mon, 8 Jan 2024 17:45:44 +0800 Subject: [PATCH 1/3] fixbug: role init with is_human=True was not work --- metagpt/roles/role.py | 3 +++ tests/metagpt/roles/test_role.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/metagpt/roles/role.py b/metagpt/roles/role.py index 3bcd600fc..71f6ec8f5 100644 --- a/metagpt/roles/role.py +++ b/metagpt/roles/role.py @@ -166,6 +166,9 @@ class Role(SerializationMixin, is_polymorphic_base=True): Role.model_rebuild() super().__init__(**data) + if data.get("is_human"): + self.llm = HumanProvider() + self.llm.system_prompt = self._get_prefix() self._watch(data.get("watch") or [UserRequirement]) diff --git a/tests/metagpt/roles/test_role.py b/tests/metagpt/roles/test_role.py index b3b54455e..151608b6b 100644 --- a/tests/metagpt/roles/test_role.py +++ b/tests/metagpt/roles/test_role.py @@ -4,6 +4,7 @@ import pytest from metagpt.roles.role import Role +from metagpt.llm import HumanProvider def test_role_desc(): @@ -11,6 +12,9 @@ def test_role_desc(): assert role.profile == "Sales" assert role.desc == "Best Seller" +def test_role_human(): + role = Role(is_human=True) + assert isinstance(role.llm, HumanProvider) if __name__ == "__main__": pytest.main([__file__, "-s"]) From bd2b1950eba09883790facbcb3b01b5b75cbd4c7 Mon Sep 17 00:00:00 2001 From: kkdev163 Date: Mon, 8 Jan 2024 22:29:17 +0800 Subject: [PATCH 2/3] optimize: access to is_human --- metagpt/roles/role.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/roles/role.py b/metagpt/roles/role.py index 71f6ec8f5..b234a846f 100644 --- a/metagpt/roles/role.py +++ b/metagpt/roles/role.py @@ -166,7 +166,7 @@ class Role(SerializationMixin, is_polymorphic_base=True): Role.model_rebuild() super().__init__(**data) - if data.get("is_human"): + if self.is_human: self.llm = HumanProvider() self.llm.system_prompt = self._get_prefix() From 82a5eec72707dee44174eae8f8ff1490a6819ecd Mon Sep 17 00:00:00 2001 From: kkdev163 Date: Tue, 9 Jan 2024 12:01:57 +0800 Subject: [PATCH 3/3] fix(test_role): format error --- tests/metagpt/roles/test_role.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/metagpt/roles/test_role.py b/tests/metagpt/roles/test_role.py index 151608b6b..bef71f9a5 100644 --- a/tests/metagpt/roles/test_role.py +++ b/tests/metagpt/roles/test_role.py @@ -3,8 +3,8 @@ # @Desc : unittest of Role import pytest -from metagpt.roles.role import Role from metagpt.llm import HumanProvider +from metagpt.roles.role import Role def test_role_desc(): @@ -12,9 +12,11 @@ def test_role_desc(): assert role.profile == "Sales" assert role.desc == "Best Seller" + def test_role_human(): role = Role(is_human=True) assert isinstance(role.llm, HumanProvider) + if __name__ == "__main__": pytest.main([__file__, "-s"])