mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-08 15:05:17 +02:00
rename tool type
This commit is contained in:
parent
a35f5366b8
commit
20393e9d7a
11 changed files with 37 additions and 37 deletions
|
|
@ -3,7 +3,7 @@ from metagpt.actions.ci.execute_nb_code import ExecuteNbCode
|
|||
from metagpt.actions.ci.ml_action import UpdateDataColumns, WriteCodeWithToolsML
|
||||
from metagpt.logs import logger
|
||||
from metagpt.roles.ci.code_interpreter import CodeInterpreter
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
from metagpt.utils.common import any_to_str
|
||||
|
||||
|
||||
|
|
@ -51,9 +51,9 @@ class MLEngineer(CodeInterpreter):
|
|||
async def _update_data_columns(self):
|
||||
current_task = self.planner.plan.current_task
|
||||
if current_task.task_type not in [
|
||||
ToolTypes.DATA_PREPROCESS.type_name,
|
||||
ToolTypes.FEATURE_ENGINEERING.type_name,
|
||||
ToolTypes.MODEL_TRAIN.type_name,
|
||||
ToolType.DATA_PREPROCESS.type_name,
|
||||
ToolType.FEATURE_ENGINEERING.type_name,
|
||||
ToolType.MODEL_TRAIN.type_name,
|
||||
]:
|
||||
return ""
|
||||
logger.info("Check columns in updated data")
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ from sklearn.preprocessing import (
|
|||
)
|
||||
|
||||
from metagpt.tools.tool_registry import register_tool
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
TOOL_TYPE = ToolTypes.DATA_PREPROCESS.type_name
|
||||
TOOL_TYPE = ToolType.DATA_PREPROCESS.type_name
|
||||
|
||||
|
||||
class MLProcess:
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ from sklearn.preprocessing import KBinsDiscretizer, PolynomialFeatures
|
|||
|
||||
from metagpt.tools.libs.data_preprocess import MLProcess
|
||||
from metagpt.tools.tool_registry import register_tool
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
TOOL_TYPE = ToolTypes.FEATURE_ENGINEERING.type_name
|
||||
TOOL_TYPE = ToolType.FEATURE_ENGINEERING.type_name
|
||||
|
||||
|
||||
@register_tool(tool_type=TOOL_TYPE)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import requests
|
|||
|
||||
from metagpt.const import DEFAULT_WORKSPACE_ROOT
|
||||
from metagpt.tools.tool_registry import register_tool
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
ANALYZE_LAYOUT_PROMPT = """You are now a UI/UX, please generate layout information for this image:
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ Now, please generate the corresponding webpage code including HTML, CSS and Java
|
|||
|
||||
|
||||
@register_tool(
|
||||
tool_type=ToolTypes.IMAGE2WEBPAGE.type_name, include_functions=["__init__", "generate_webpages", "save_webpages"]
|
||||
tool_type=ToolType.IMAGE2WEBPAGE.type_name, include_functions=["__init__", "generate_webpages", "save_webpages"]
|
||||
)
|
||||
class GPTvGenerator:
|
||||
"""Class for generating webpages at once.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ from PIL import Image, PngImagePlugin
|
|||
from metagpt.const import SD_OUTPUT_FILE_REPO, SOURCE_ROOT
|
||||
from metagpt.logs import logger
|
||||
from metagpt.tools.tool_registry import register_tool
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
payload = {
|
||||
"prompt": "",
|
||||
|
|
@ -54,7 +54,7 @@ default_negative_prompt = "(easynegative:0.8),black, dark,Low resolution"
|
|||
|
||||
|
||||
@register_tool(
|
||||
tool_type=ToolTypes.STABLE_DIFFUSION.type_name,
|
||||
tool_type=ToolType.STABLE_DIFFUSION.type_name,
|
||||
include_functions=["__init__", "simple_run_t2i", "run_t2i", "construct_payload", "save"],
|
||||
)
|
||||
class SDEngine:
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
from metagpt.tools.tool_registry import register_tool
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
from metagpt.tools.web_browser_engine_playwright import PlaywrightWrapper
|
||||
|
||||
|
||||
@register_tool(tool_type=ToolTypes.WEBSCRAPING.type_name)
|
||||
@register_tool(tool_type=ToolType.WEBSCRAPING.type_name)
|
||||
async def scrape_web_playwright(url, *urls):
|
||||
"""
|
||||
Scrape and save the HTML structure and inner text content of a web page using Playwright.
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class ToolType(BaseModel):
|
||||
class ToolTypeDef(BaseModel):
|
||||
name: str
|
||||
desc: str = ""
|
||||
usage_prompt: str = ""
|
||||
|
||||
|
||||
class ToolSchema(BaseModel):
|
||||
name: str
|
||||
description: str
|
||||
|
||||
|
||||
class Tool(BaseModel):
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ from pydantic import BaseModel, field_validator
|
|||
from metagpt.const import TOOL_SCHEMA_PATH
|
||||
from metagpt.logs import logger
|
||||
from metagpt.tools.tool_convert import convert_code_to_tool_schema
|
||||
from metagpt.tools.tool_data_type import Tool, ToolSchema, ToolType
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_data_type import Tool, ToolSchema, ToolTypeDef
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
|
||||
class ToolRegistry(BaseModel):
|
||||
|
|
@ -27,7 +27,7 @@ class ToolRegistry(BaseModel):
|
|||
|
||||
@field_validator("tool_types", mode="before")
|
||||
@classmethod
|
||||
def init_tool_types(cls, tool_types: ToolTypes):
|
||||
def init_tool_types(cls, tool_types: ToolType):
|
||||
return {tool_type.type_name: tool_type.value for tool_type in tool_types}
|
||||
|
||||
def register_tool(
|
||||
|
|
@ -47,9 +47,9 @@ class ToolRegistry(BaseModel):
|
|||
if tool_type not in self.tool_types:
|
||||
# register new tool type on the fly
|
||||
logger.warning(
|
||||
f"{tool_type} not previously defined, will create a temporary ToolType with just a name. This ToolType is only effective during this runtime. You may consider add this ToolType with more configs permanently at metagpt.tools.tool_types"
|
||||
f"{tool_type} not previously defined, will create a temporary tool type with just a name. This tool type is only effective during this runtime. You may consider add this tool type with more configs permanently at metagpt.tools.tool_type"
|
||||
)
|
||||
temp_tool_type_obj = ToolType(name=tool_type)
|
||||
temp_tool_type_obj = ToolTypeDef(name=tool_type)
|
||||
self.tool_types[tool_type] = temp_tool_type_obj
|
||||
if verbose:
|
||||
logger.info(f"tool type {tool_type} registered")
|
||||
|
|
@ -97,7 +97,7 @@ class ToolRegistry(BaseModel):
|
|||
|
||||
|
||||
# Registry instance
|
||||
TOOL_REGISTRY = ToolRegistry(tool_types=ToolTypes)
|
||||
TOOL_REGISTRY = ToolRegistry(tool_types=ToolType)
|
||||
|
||||
|
||||
def register_tool(tool_type: str = "other", schema_path: str = "", **kwargs):
|
||||
|
|
|
|||
|
|
@ -7,45 +7,45 @@ from metagpt.prompts.tool_types import (
|
|||
MODEL_EVALUATE_PROMPT,
|
||||
MODEL_TRAIN_PROMPT,
|
||||
)
|
||||
from metagpt.tools.tool_data_type import ToolType
|
||||
from metagpt.tools.tool_data_type import ToolTypeDef
|
||||
|
||||
|
||||
class ToolTypes(Enum):
|
||||
EDA = ToolType(name="eda", desc="For performing exploratory data analysis")
|
||||
DATA_PREPROCESS = ToolType(
|
||||
class ToolType(Enum):
|
||||
EDA = ToolTypeDef(name="eda", desc="For performing exploratory data analysis")
|
||||
DATA_PREPROCESS = ToolTypeDef(
|
||||
name="data_preprocess",
|
||||
desc="Only for changing value inplace.",
|
||||
usage_prompt=DATA_PREPROCESS_PROMPT,
|
||||
)
|
||||
FEATURE_ENGINEERING = ToolType(
|
||||
FEATURE_ENGINEERING = ToolTypeDef(
|
||||
name="feature_engineering",
|
||||
desc="Only for creating new columns for input data.",
|
||||
usage_prompt=FEATURE_ENGINEERING_PROMPT,
|
||||
)
|
||||
MODEL_TRAIN = ToolType(
|
||||
MODEL_TRAIN = ToolTypeDef(
|
||||
name="model_train",
|
||||
desc="Only for training model.",
|
||||
usage_prompt=MODEL_TRAIN_PROMPT,
|
||||
)
|
||||
MODEL_EVALUATE = ToolType(
|
||||
MODEL_EVALUATE = ToolTypeDef(
|
||||
name="model_evaluate",
|
||||
desc="Only for evaluating model.",
|
||||
usage_prompt=MODEL_EVALUATE_PROMPT,
|
||||
)
|
||||
STABLE_DIFFUSION = ToolType(
|
||||
STABLE_DIFFUSION = ToolTypeDef(
|
||||
name="stable_diffusion",
|
||||
desc="Related to text2image, image2image using stable diffusion model.",
|
||||
)
|
||||
IMAGE2WEBPAGE = ToolType(
|
||||
IMAGE2WEBPAGE = ToolTypeDef(
|
||||
name="image2webpage",
|
||||
desc="For converting image into webpage code.",
|
||||
usage_prompt=IMAGE2WEBPAGE_PROMPT,
|
||||
)
|
||||
WEBSCRAPING = ToolType(
|
||||
WEBSCRAPING = ToolTypeDef(
|
||||
name="web_scraping",
|
||||
desc="For scraping data from web pages.",
|
||||
)
|
||||
OTHER = ToolType(name="other", desc="Any tools not in the defined categories")
|
||||
OTHER = ToolTypeDef(name="other", desc="Any tools not in the defined categories")
|
||||
|
||||
def __missing__(self, key):
|
||||
return self.OTHER
|
||||
|
|
@ -4,7 +4,7 @@ from metagpt.actions.ci.execute_nb_code import ExecuteNbCode
|
|||
from metagpt.logs import logger
|
||||
from metagpt.roles.ci.ml_engineer import MLEngineer
|
||||
from metagpt.schema import Message, Plan, Task
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
from tests.metagpt.actions.ci.test_debug_code import CODE, DebugContext, ErrorStr
|
||||
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ async def test_mle_update_data_columns(mocker):
|
|||
mle.planner.plan = MockPlan
|
||||
|
||||
# manually update task type to test update
|
||||
mle.planner.plan.current_task.task_type = ToolTypes.DATA_PREPROCESS.value
|
||||
mle.planner.plan.current_task.task_type = ToolType.DATA_PREPROCESS.value
|
||||
|
||||
result = await mle._update_data_columns()
|
||||
assert result is not None
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pytest
|
||||
|
||||
from metagpt.tools.tool_registry import ToolRegistry
|
||||
from metagpt.tools.tool_types import ToolTypes
|
||||
from metagpt.tools.tool_type import ToolType
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
@ -11,7 +11,7 @@ def tool_registry():
|
|||
|
||||
@pytest.fixture
|
||||
def tool_registry_full():
|
||||
return ToolRegistry(tool_types=ToolTypes)
|
||||
return ToolRegistry(tool_types=ToolType)
|
||||
|
||||
|
||||
# Test Initialization
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue