From 83dbf97819275bfe7e3e892961016219a2e466e2 Mon Sep 17 00:00:00 2001 From: better629 Date: Wed, 27 Dec 2023 14:33:55 +0800 Subject: [PATCH] update SKAgent due pydantic v2 and fix missing field type --- metagpt/roles/sk_agent.py | 14 ++++++-------- metagpt/roles/tutorial_assistant.py | 6 +++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/metagpt/roles/sk_agent.py b/metagpt/roles/sk_agent.py index 039c9cd15..2bfe019fe 100644 --- a/metagpt/roles/sk_agent.py +++ b/metagpt/roles/sk_agent.py @@ -7,19 +7,17 @@ @Modified By: mashenquan, 2023-11-1. In accordance with Chapter 2.2.1 and 2.2.2 of RFC 116, utilize the new message distribution feature for message filtering. """ -from typing import Any, Type, Union +from typing import Any, Callable, Union from pydantic import Field from semantic_kernel import Kernel from semantic_kernel.planning import SequentialPlanner from semantic_kernel.planning.action_planner.action_planner import ActionPlanner -from semantic_kernel.planning.basic_planner import BasicPlanner +from semantic_kernel.planning.basic_planner import BasicPlanner, Plan from metagpt.actions import UserRequirement from metagpt.actions.execute_task import ExecuteTask -from metagpt.llm import LLM from metagpt.logs import logger -from metagpt.provider.base_gpt_api import BaseGPTAPI from metagpt.roles import Role from metagpt.schema import Message from metagpt.utils.make_sk_kernel import make_sk_kernel @@ -41,13 +39,13 @@ class SkAgent(Role): goal: str = "Execute task based on passed in task description" constraints: str = "" - plan: Any = None + plan: Plan = None planner_cls: Any = None planner: Union[BasicPlanner, SequentialPlanner, ActionPlanner] = None - llm: BaseGPTAPI = Field(default_factory=LLM) + kernel: Kernel = Field(default_factory=Kernel) - import_semantic_skill_from_directory: Type[Kernel.import_semantic_skill_from_directory] = None - import_skill: Type[Kernel.import_skill] = None + import_semantic_skill_from_directory: Callable = None + import_skill: Callable = None def __init__(self, **data: Any) -> None: """Initializes the Engineer role with given attributes.""" diff --git a/metagpt/roles/tutorial_assistant.py b/metagpt/roles/tutorial_assistant.py index 1f5574414..a5534b9d1 100644 --- a/metagpt/roles/tutorial_assistant.py +++ b/metagpt/roles/tutorial_assistant.py @@ -34,9 +34,9 @@ class TutorialAssistant(Role): constraints: str = "Strictly follow Markdown's syntax, with neat and standardized layout" language: str = "Chinese" - topic = "" - main_title = "" - total_content = "" + topic: str = "" + main_title: str = "" + total_content: str = "" def __init__(self, **kwargs): super().__init__(**kwargs)