From 6cde039f7f29daadc0719901d729b7557269fac3 Mon Sep 17 00:00:00 2001 From: kkdev163 Date: Mon, 8 Jan 2024 17:45:44 +0800 Subject: [PATCH] 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"])