diff --git a/metagpt/actions/design_api.py b/metagpt/actions/design_api.py index 981e1405a..b0a6a2861 100644 --- a/metagpt/actions/design_api.py +++ b/metagpt/actions/design_api.py @@ -62,7 +62,7 @@ class WriteDesign(Action): *, user_requirement: str = "", prd_filename: str = "", - exists_design_filename: str = "", + legacy_design_filename: str = "", extra_info: str = "", output_path: str = "", **kwargs, @@ -73,7 +73,7 @@ class WriteDesign(Action): Args: user_requirement (str): The user's requirements for the system design. prd_filename (str, optional): The filename of the Product Requirement Document (PRD). - exists_design_filename (str, optional): The filename of the existing design document. + legacy_design_filename (str, optional): The filename of the legacy design document. extra_info (str, optional): Additional information to be included in the system design. output_path (str, optional): The output path where the system design should be saved. @@ -92,9 +92,9 @@ class WriteDesign(Action): # Modify an exists system design. >>> user_requirement = "Your user requirements" >>> extra_info = "Your extra information" - >>> exists_design_filename = "/path/to/exists/design/filename" + >>> legacy_design_filename = "/path/to/exists/design/filename" >>> action = WriteDesign() - >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, exists_design_filename=exists_design_filename) + >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, legacy_design_filename=legacy_design_filename) >>> print(result.content) The design is balabala... @@ -111,9 +111,9 @@ class WriteDesign(Action): >>> user_requirement = "Your user requirements" >>> extra_info = "Your extra information" >>> prd_filename = "/path/to/prd/filename" - >>> exists_design_filename = "/path/to/exists/design/filename" + >>> legacy_design_filename = "/path/to/exists/design/filename" >>> action = WriteDesign() - >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, exists_design_filename=exists_design_filename, prd_filename=prd_filename) + >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, legacy_design_filename=legacy_design_filename, prd_filename=prd_filename) >>> print(result.content) The design is balabala... @@ -129,10 +129,10 @@ class WriteDesign(Action): # Modify an exists system design and save to the directory. >>> user_requirement = "Your user requirements" >>> extra_info = "Your extra information" - >>> exists_design_filename = "/path/to/exists/design/filename" + >>> legacy_design_filename = "/path/to/exists/design/filename" >>> output_path = "/path/to/save/" >>> action = WriteDesign() - >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, exists_design_filename=exists_design_filename) + >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, legacy_design_filename=legacy_design_filename) >>> print(result.content) System Design filename: "/path/to/design/filename" @@ -150,10 +150,10 @@ class WriteDesign(Action): >>> user_requirement = "Your user requirements" >>> extra_info = "Your extra information" >>> prd_filename = "/path/to/prd/filename" - >>> exists_design_filename = "/path/to/exists/design/filename" + >>> legacy_design_filename = "/path/to/exists/design/filename" >>> output_path = "/path/to/save/" >>> action = WriteDesign() - >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, exists_design_filename=exists_design_filename, prd_filename=prd_filename) + >>> result = await action.run(user_requirement=user_requirement, extra_info=extra_info, legacy_design_filename=legacy_design_filename, prd_filename=prd_filename) >>> print(result.content) System Design filename: "/path/to/design/filename" """ @@ -161,7 +161,7 @@ class WriteDesign(Action): return await self._execute_api( user_requirement=user_requirement, prd_filename=prd_filename, - exists_design_filename=exists_design_filename, + legacy_design_filename=legacy_design_filename, extra_info=extra_info, output_path=output_path, ) @@ -266,7 +266,7 @@ class WriteDesign(Action): self, user_requirement: str = "", prd_filename: str = "", - exists_design_filename: str = "", + legacy_design_filename: str = "", extra_info: str = "", output_path: str = "", ) -> AIMessage: @@ -276,11 +276,11 @@ class WriteDesign(Action): if prd_filename: prd_content = await aread(filename=prd_filename) context += to_markdown_code_block(prd_content) - if not exists_design_filename: + if not legacy_design_filename: node = await self._new_system_design(context=context) design = Document(content=node.instruct_content.model_dump_json()) else: - old_design_content = await aread(filename=exists_design_filename) + old_design_content = await aread(filename=legacy_design_filename) design = await self._merge( prd_doc=Document(content=context), system_design_doc=Document(content=old_design_content) ) diff --git a/metagpt/actions/write_prd.py b/metagpt/actions/write_prd.py index de3bcde84..58db97c75 100644 --- a/metagpt/actions/write_prd.py +++ b/metagpt/actions/write_prd.py @@ -83,7 +83,7 @@ class WritePRD(Action): *, user_requirement: str = "", output_path: str = "", - exists_prd_filename: str = "", + legacy_prd_filename: str = "", extra_info: str = "", **kwargs, ) -> AIMessage: @@ -93,7 +93,7 @@ class WritePRD(Action): Args: user_requirement (str): A string detailing the user's requirements. output_path (str, optional): The file path where the output document should be saved. Defaults to "". - exists_prd_filename (str, optional): The file path of an existing Product Requirement Document to use as a reference. Defaults to "". + legacy_prd_filename (str, optional): The file path of the legacy Product Requirement Document to use as a reference. Defaults to "". extra_info (str, optional): Additional information to include in the document. Defaults to "". **kwargs: Additional keyword arguments. @@ -112,9 +112,9 @@ class WritePRD(Action): # Modify a exists PRD(Product Requirement Document) >>> user_requirement = "YOUR REQUIREMENTS" >>> extra_info = "YOUR EXTRA INFO" - >>> exists_prd_filename = "/path/to/exists/prd_filename" + >>> legacy_prd_filename = "/path/to/exists/prd_filename" >>> write_prd = WritePRD() - >>> result = await write_prd.run(user_requirement=user_requirement, extra_info=extra_info, exists_prd_filename=exists_prd_filename) + >>> result = await write_prd.run(user_requirement=user_requirement, extra_info=extra_info, legacy_prd_filename=legacy_prd_filename) >>> print(result.content) The PRD is about balabala... @@ -130,10 +130,10 @@ class WritePRD(Action): # Modify a exists PRD(Product Requirement Document) and save to the directory. >>> user_requirement = "YOUR REQUIREMENTS" >>> extra_info = "YOUR EXTRA INFO" - >>> exists_prd_filename = "/path/to/exists/prd_filename" + >>> legacy_prd_filename = "/path/to/exists/prd_filename" >>> output_path = "/path/to/prd/directory/" >>> write_prd = WritePRD() - >>> result = await write_prd.run(user_requirement=user_requirement, extra_info=extra_info, exists_prd_filename=exists_prd_filename, output_path=output_path) + >>> result = await write_prd.run(user_requirement=user_requirement, extra_info=extra_info, legacy_prd_filename=legacy_prd_filename, output_path=output_path) >>> print(result.content) PRD filename: "/path/to/prd/directory/213434ad.json" @@ -142,7 +142,7 @@ class WritePRD(Action): return await self._execute_api( user_requirement=user_requirement, output_path=output_path, - exists_prd_filename=exists_prd_filename, + legacy_prd_filename=legacy_prd_filename, extra_info=extra_info, ) @@ -306,18 +306,18 @@ class WritePRD(Action): self.repo.git_repo.rename_root(self.project_name) async def _execute_api( - self, user_requirement: str, output_path: str, exists_prd_filename: str, extra_info: str + self, user_requirement: str, output_path: str, legacy_prd_filename: str, extra_info: str ) -> AIMessage: content = to_markdown_code_block(val=user_requirement, type_="text") if extra_info: content += to_markdown_code_block(val=extra_info) req = Document(content=content) - if not exists_prd_filename: + if not legacy_prd_filename: node = await self._new_prd(requirement=req.content) new_prd = Document(content=node.instruct_content.model_dump_json()) else: - content = await aread(filename=exists_prd_filename) + content = await aread(filename=legacy_prd_filename) old_prd = Document(content=content) new_prd = await self._merge(req=req, related_doc=old_prd) diff --git a/tests/metagpt/actions/test_design_api.py b/tests/metagpt/actions/test_design_api.py index 1351b418a..0a792fb15 100644 --- a/tests/metagpt/actions/test_design_api.py +++ b/tests/metagpt/actions/test_design_api.py @@ -55,7 +55,7 @@ async def test_design(context): @pytest.mark.parametrize( - ("user_requirement", "prd_filename", "exists_design_filename"), + ("user_requirement", "prd_filename", "legacy_design_filename"), [ ("我们需要一个音乐播放器,它应该有播放、暂停、上一曲、下一曲等功能。", None, None), ("write 2048 game", str(METAGPT_ROOT / "tests/data/prd.json"), None), @@ -67,10 +67,10 @@ async def test_design(context): ], ) @pytest.mark.asyncio -async def test_design_api(context, user_requirement, prd_filename, exists_design_filename): +async def test_design_api(context, user_requirement, prd_filename, legacy_design_filename): action = WriteDesign() result = await action.run( - user_requirement=user_requirement, prd_filename=prd_filename, exists_design_filename=exists_design_filename + user_requirement=user_requirement, prd_filename=prd_filename, legacy_design_filename=legacy_design_filename ) assert isinstance(result, AIMessage) assert result.content @@ -79,7 +79,7 @@ async def test_design_api(context, user_requirement, prd_filename, exists_design @pytest.mark.parametrize( - ("user_requirement", "prd_filename", "exists_design_filename"), + ("user_requirement", "prd_filename", "legacy_design_filename"), [ ("我们需要一个音乐播放器,它应该有播放、暂停、上一曲、下一曲等功能。", None, None), ("write 2048 game", str(METAGPT_ROOT / "tests/data/prd.json"), None), @@ -91,12 +91,12 @@ async def test_design_api(context, user_requirement, prd_filename, exists_design ], ) @pytest.mark.asyncio -async def test_design_api_dir(context, user_requirement, prd_filename, exists_design_filename): +async def test_design_api_dir(context, user_requirement, prd_filename, legacy_design_filename): action = WriteDesign() result = await action.run( user_requirement=user_requirement, prd_filename=prd_filename, - exists_design_filename=exists_design_filename, + legacy_design_filename=legacy_design_filename, output_path=context.config.project_path, ) assert isinstance(result, AIMessage) diff --git a/tests/metagpt/actions/test_write_prd.py b/tests/metagpt/actions/test_write_prd.py index 8cbc01716..93a1b150c 100644 --- a/tests/metagpt/actions/test_write_prd.py +++ b/tests/metagpt/actions/test_write_prd.py @@ -91,7 +91,7 @@ async def test_write_prd_api(context): legacy_prd_filename = result.instruct_content.changed_prd_filenames[-1] - result = await action.run(user_requirement="Add moving enemy.", exists_prd_filename=legacy_prd_filename) + result = await action.run(user_requirement="Add moving enemy.", legacy_prd_filename=legacy_prd_filename) assert isinstance(result, AIMessage) assert result.content m = json.loads(result.content) @@ -100,7 +100,7 @@ async def test_write_prd_api(context): result = await action.run( user_requirement="Add moving enemy.", output_path=str(context.config.project_path), - exists_prd_filename=legacy_prd_filename, + legacy_prd_filename=legacy_prd_filename, ) assert isinstance(result, AIMessage) assert result.content