AutogenMultiAgent / src /usecases /multiagentcodeexecution.py
genaitiwari's picture
updated readme file usecases
0e893aa
Raw History Blame Contribute Delete
2.56 kB
import asyncio
from src.agents.assistantagent import TrackableAssistantAgent
from src.agents.userproxyagent import TrackableUserProxyAgent
import streamlit as st
import autogen
class MultiAgentCodeExecution:
def __init__(self, assistant_name, user_proxy_name, llm_config, problem):
self.coder = TrackableAssistantAgent(name=assistant_name[0],
system_message="""you are helpful assistant and efficient in writing code in python.""",
human_input_mode="NEVER",
llm_config=llm_config,
)
self.pm = TrackableAssistantAgent(name=assistant_name[1],
system_message="""You are efficient in Creative in software product ideas. Reply "TERMINATE" in
the end when everything is done """,
human_input_mode="NEVER",
llm_config=llm_config,
)
self.user_proxy = TrackableUserProxyAgent(name=user_proxy_name,
system_message="You are human Admin",
human_input_mode="NEVER",
llm_config=llm_config,
code_execution_config={"last_n_messages":2,"work_dir" : "./codegen","use_docker":False},
is_termination_msg=lambda x: x.get("content", "").strip().endswith(
"TERMINATE"))
self.groupchat = autogen.GroupChat(agents=[self.user_proxy,self.coder,self.pm],messages=[],max_round=2)
self.manager = autogen.GroupChatManager(groupchat=self.groupchat,llm_config=llm_config)
self.problem = problem
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
def _reset(self):
self.coder.reset()
self.pm.reset()
async def initiate_chat(self):
self._reset()
await self.user_proxy.a_initiate_chat(self.manager,max_turns=2, message=self.problem, clear_history=st.session_state["chat_with_history"])
def run(self):
self.loop.run_until_complete(self.initiate_chat())