From 44fa8d63d49c7fd0f17a7d24d451c8d7ac0ab886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BB=BA=E7=94=9F?= Date: Thu, 20 Feb 2025 19:57:16 +0800 Subject: [PATCH] update CR comment --- examples/write_game_code.py | 54 ++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/examples/write_game_code.py b/examples/write_game_code.py index f7b51b581..7873f75c7 100644 --- a/examples/write_game_code.py +++ b/examples/write_game_code.py @@ -1,24 +1,52 @@ import asyncio +import time -from metagpt.logs import logger from metagpt.environment.mgx.mgx_env import MGXEnv -from metagpt.schema import Message -from metagpt.roles.di.team_leader import TeamLeader +from metagpt.roles import Architect, ProductManager +from metagpt.roles.di.data_analyst import DataAnalyst from metagpt.roles.di.engineer2 import Engineer2 +from metagpt.roles.di.team_leader import TeamLeader +from metagpt.schema import Message -async def main(): - msg = "Write code for a 2048 game" +async def main(requirement="", user_defined_recipient="", enable_human_input=False, allow_idle_time=30): env = MGXEnv() - env.add_roles([TeamLeader(), Engineer2()]) - env.publish_message(Message(content=msg, role="user")) - tl = env.get_role("Mike") - await tl.run() + env.add_roles( + [ + TeamLeader(), + Engineer2(), + ProductManager(), + Architect(), + DataAnalyst(), + ] + ) - role = env.get_role("Alex") - result = await role.run(msg) - logger.info(result) + msg = Message(content=requirement) + env.attach_images(msg) # attach image content if applicable + + if user_defined_recipient: + msg.send_to = {user_defined_recipient} + env.publish_message(msg, user_defined_recipient=user_defined_recipient) + else: + env.publish_message(msg) + + allow_idle_time = allow_idle_time if enable_human_input else 1 + start_time = time.time() + while time.time() - start_time < allow_idle_time: + if not env.is_idle: + await env.run() + start_time = time.time() # reset start time if __name__ == "__main__": - asyncio.run(main()) + requirement = "Write code for a 2048 game" + user_defined_recipient = "" + + asyncio.run( + main( + requirement=requirement, + user_defined_recipient=user_defined_recipient, + enable_human_input=False, + allow_idle_time=60, + ) + )