mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-08 15:05:17 +02:00
update
This commit is contained in:
parent
76e641ab1e
commit
806853b223
3 changed files with 50 additions and 7 deletions
|
|
@ -34,7 +34,6 @@ class ProductManager(RoleZero):
|
|||
goal: str = "Create a Product Requirement Document or market research/competitive product research."
|
||||
constraints: str = "utilize the same language as the user requirements for seamless communication"
|
||||
instruction: str = PRODUCT_MANAGER_INSTRUCTION
|
||||
max_react_loop: int = 50
|
||||
tools: list[str] = ["RoleZero", Browser.__name__, Editor.__name__, SearchEnhancedQA.__name__]
|
||||
|
||||
todo_action: str = any_to_name(WritePRD)
|
||||
|
|
|
|||
|
|
@ -689,12 +689,6 @@ class Plan(BaseModel):
|
|||
Append a new task with task_id (number) to the end of existing task sequences.
|
||||
If dependent_task_ids is not empty, the task will depend on the tasks with the ids in the list.
|
||||
Note that the assignee should be the 'name' of the role.
|
||||
Args:
|
||||
task_id (str): The task id to be appended to the existing task sequence
|
||||
dependent_task_ids (list[str]): The task ids that the new task depends on
|
||||
instruction (str): The instruction of the new task
|
||||
assignee (str): The assignee of the new task
|
||||
task_type (str, optional): The type of the new task, default is empty string
|
||||
"""
|
||||
new_task = Task(
|
||||
task_id=task_id,
|
||||
|
|
|
|||
50
tests/metagpt/roles/test_product_manager.py
Normal file
50
tests/metagpt/roles/test_product_manager.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@Time : 2023/5/16 14:50
|
||||
@Author : alexanderwu
|
||||
@File : test_product_manager.py
|
||||
"""
|
||||
import json
|
||||
|
||||
import pytest
|
||||
|
||||
from metagpt.actions import WritePRD
|
||||
from metagpt.const import REQUIREMENT_FILENAME
|
||||
from metagpt.context import Context
|
||||
from metagpt.logs import logger
|
||||
from metagpt.roles import ProductManager
|
||||
from metagpt.utils.common import any_to_str
|
||||
from tests.metagpt.roles.mock import MockMessages
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_product_manager(new_filename):
|
||||
context = Context()
|
||||
try:
|
||||
assert context.git_repo is None
|
||||
assert context.repo is None
|
||||
product_manager = ProductManager(context=context)
|
||||
# prepare documents
|
||||
rsp = await product_manager.run(MockMessages.req)
|
||||
assert context.git_repo
|
||||
assert context.repo
|
||||
assert rsp.cause_by == any_to_str(WritePRD)
|
||||
assert REQUIREMENT_FILENAME in context.repo.docs.changed_files
|
||||
logger.info(rsp)
|
||||
assert len(rsp.content) > 0
|
||||
doc = list(rsp.instruct_content.docs.values())[0]
|
||||
m = json.loads(doc.content)
|
||||
assert m["Original Requirements"] == MockMessages.req.content
|
||||
|
||||
# nothing to do
|
||||
rsp = await product_manager.run(rsp)
|
||||
assert rsp is None
|
||||
except Exception as e:
|
||||
assert not e
|
||||
finally:
|
||||
context.git_repo.delete_repository()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
Loading…
Add table
Add a link
Reference in a new issue