mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-08 15:05:17 +02:00
formatting
This commit is contained in:
parent
e0381680ad
commit
f040c73ae9
3 changed files with 21 additions and 20 deletions
|
|
@ -43,7 +43,7 @@ class CreateAgent(Action):
|
|||
code_text = CreateAgent.parse_code(rsp)
|
||||
|
||||
return code_text
|
||||
|
||||
|
||||
@staticmethod
|
||||
def parse_code(rsp):
|
||||
pattern = r'```python(.*)```'
|
||||
|
|
@ -85,7 +85,8 @@ if __name__ == "__main__":
|
|||
|
||||
creator = AgentCreator(agent_template=agent_template)
|
||||
|
||||
# msg = """Write an agent called SimpleTester that will take any code snippet (str) and return a testing code (str) for testing
|
||||
# msg = """Write an agent called SimpleTester that will take any code snippet (str)
|
||||
# and return a testing code (str) for testing
|
||||
# the given code snippet. Use pytest as the testing framework."""
|
||||
|
||||
msg = """
|
||||
|
|
@ -94,6 +95,6 @@ if __name__ == "__main__":
|
|||
2. run the testing code.
|
||||
You can use pytest as the testing framework.
|
||||
"""
|
||||
result = await creator.run(msg)
|
||||
await creator.run(msg)
|
||||
|
||||
asyncio.run(main())
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class SimpleWriteCode(Action):
|
|||
|
||||
def __init__(self, name="SimpleWriteCode", context=None, llm=None):
|
||||
super().__init__(name, context, llm)
|
||||
|
||||
|
||||
async def run(self, instruction: str):
|
||||
|
||||
prompt = self.PROMPT_TEMPLATE.format(instruction=instruction)
|
||||
|
|
@ -43,7 +43,7 @@ class SimpleWriteCode(Action):
|
|||
code_text = SimpleWriteCode.parse_code(rsp)
|
||||
|
||||
return code_text
|
||||
|
||||
|
||||
@staticmethod
|
||||
def parse_code(rsp):
|
||||
pattern = r'```python(.*)```'
|
||||
|
|
@ -54,7 +54,7 @@ class SimpleWriteCode(Action):
|
|||
class SimpleRunCode(Action):
|
||||
def __init__(self, name="SimpleRunCode", context=None, llm=None):
|
||||
super().__init__(name, context, llm)
|
||||
|
||||
|
||||
async def run(self, code_text: str):
|
||||
result = subprocess.run(["python3", "-c", code_text], capture_output=True, text=True)
|
||||
code_result = result.stdout
|
||||
|
|
@ -112,7 +112,7 @@ class RunnableCoder(Role):
|
|||
instruction = msg.content
|
||||
code_text = await SimpleWriteCode().run(instruction)
|
||||
msg = Message(content=code_text, role=self.profile, cause_by=todo)
|
||||
|
||||
|
||||
elif isinstance(todo, SimpleRunCode):
|
||||
code_text = msg.content
|
||||
rsp = await SimpleRunCode().run(code_text)
|
||||
|
|
@ -137,4 +137,4 @@ async def main(msg="write a function that calculates the sum of a list"):
|
|||
logger.info(result)
|
||||
|
||||
if __name__ == '__main__':
|
||||
fire.Fire(main)
|
||||
fire.Fire(main)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class ShoutOut(Action):
|
|||
|
||||
def __init__(self, name="ShoutOut", context=None, llm=None):
|
||||
super().__init__(name, context, llm)
|
||||
|
||||
|
||||
async def run(self, context: str, name: str, opponent_name: str):
|
||||
|
||||
prompt = self.PROMPT_TEMPLATE.format(context=context, name=name, opponent_name=opponent_name)
|
||||
|
|
@ -51,17 +51,16 @@ class Trump(Role):
|
|||
self._watch([ShoutOut])
|
||||
self.name = "Trump"
|
||||
self.opponent_name = "Biden"
|
||||
|
||||
|
||||
async def _observe(self) -> int:
|
||||
await super()._observe()
|
||||
self._rc.news = [
|
||||
msg for msg in self._rc.news if msg.send_to == self.name
|
||||
] # accept messages sent (from opponent) to self, disregard own messages from the last round
|
||||
# accept messages sent (from opponent) to self, disregard own messages from the last round
|
||||
self._rc.news = [msg for msg in self._rc.news if msg.send_to == self.name]
|
||||
return len(self._rc.news)
|
||||
|
||||
async def _act(self) -> Message:
|
||||
logger.info(f"{self._setting}: ready to {self._rc.todo}")
|
||||
|
||||
|
||||
msg_history = self._rc.memory.get_by_actions([ShoutOut])
|
||||
context = []
|
||||
for m in msg_history:
|
||||
|
|
@ -92,17 +91,17 @@ class Biden(Role):
|
|||
self._watch([BossRequirement, ShoutOut])
|
||||
self.name = "Biden"
|
||||
self.opponent_name = "Trump"
|
||||
|
||||
|
||||
async def _observe(self) -> int:
|
||||
await super()._observe()
|
||||
self._rc.news = [
|
||||
msg for msg in self._rc.news if msg.cause_by == BossRequirement or msg.send_to == self.name
|
||||
] # accept the very first human instruction (the debate topic) or messages sent (from opponent) to self, disregard own messages from the last round
|
||||
# accept the very first human instruction (the debate topic) or messages sent (from opponent) to self,
|
||||
# disregard own messages from the last round
|
||||
self._rc.news = [msg for msg in self._rc.news if msg.cause_by == BossRequirement or msg.send_to == self.name]
|
||||
return len(self._rc.news)
|
||||
|
||||
async def _act(self) -> Message:
|
||||
logger.info(f"{self._setting}: ready to {self._rc.todo}")
|
||||
|
||||
|
||||
msg_history = self._rc.memory.get_by_actions([BossRequirement, ShoutOut])
|
||||
context = []
|
||||
for m in msg_history:
|
||||
|
|
@ -134,7 +133,8 @@ async def startup(idea: str, investment: float = 3.0, n_round: int = 5,
|
|||
|
||||
def main(idea: str, investment: float = 3.0, n_round: int = 10):
|
||||
"""
|
||||
:param idea: Debate topic, such as "Topic: The U.S. should commit more in climate change fighting" or "Trump: Climate change is a hoax"
|
||||
:param idea: Debate topic, such as "Topic: The U.S. should commit more in climate change fighting"
|
||||
or "Trump: Climate change is a hoax"
|
||||
:param investment: contribute a certain dollar amount to watch the debate
|
||||
:param n_round: maximum rounds of the debate
|
||||
:return:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue