|
from autogen.agentchat.groupchat import GroupChat |
|
from autogen.agentchat.agent import Agent |
|
from autogen.agentchat.assistant_agent import AssistantAgent |
|
import json |
|
|
|
class InputParserGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Interior_designer") |
|
elif last_speaker_name == "Interior_designer": |
|
return self.agent_by_name("Admin") |
|
|
|
class RequirementGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("requirements_analyzer") |
|
elif last_speaker_name == "requirements_analyzer": |
|
return self.agent_by_name("substructure_analyzer") |
|
elif last_speaker_name == "substructure_analyzer": |
|
return self.agent_by_name("Interior_designer") |
|
elif last_speaker_name == "Interior_designer": |
|
return self.agent_by_name("Designer_checker") |
|
elif last_speaker_name == "Designer_checker": |
|
if "SUCCESS" not in last_message["content"]: |
|
return self.agent_by_name("Interior_designer") |
|
else: |
|
return self.agent_by_name("requirements_analyzer") |
|
|
|
class LanguageGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Language_architect") |
|
elif last_speaker_name == "Language_architect": |
|
return self.agent_by_name("Language_architect") |
|
|
|
class CalculationGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Calculation_architect") |
|
elif last_speaker_name == "Calculation_architect": |
|
return self.agent_by_name("Calculation_architect") |
|
|
|
class SceneGraphGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Interior_architect") |
|
elif last_speaker_name == "Interior_architect": |
|
return self.agent_by_name("Schema_engineer") |
|
elif last_speaker_name == "Schema_engineer": |
|
return self.agent_by_name("Interior_architect") |
|
|
|
|
|
class SchemaGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Schema_engineer") |
|
elif last_speaker_name == "Schema_engineer": |
|
return self.agent_by_name("Schema_debugger") |
|
elif last_speaker_name == "Schema_debugger": |
|
return self.agent_by_name("Schema_engineer") |
|
|
|
class LayoutCorrectorGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Spatial_corrector_agent") |
|
elif last_speaker_name == "Spatial_corrector_agent": |
|
return self.agent_by_name("Json_schema_debugger") |
|
elif last_speaker_name == "Json_schema_debugger": |
|
if "SUCCESS" not in last_message["content"]: |
|
return self.agent_by_name("Spatial_corrector_agent") |
|
else: |
|
return self.agent_by_name("Admin") |
|
|
|
class ObjectDeletionGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Object_deletion_agent") |
|
elif last_speaker_name == "Object_deletion_agent": |
|
return self.agent_by_name("Object_deletion_agent") |
|
|
|
class LayoutRefinerGroupChat(GroupChat): |
|
def __init__(self, agents, messages, max_round=15): |
|
super().__init__(agents, messages, max_round) |
|
self.previous_speaker = None |
|
self.counter = 0 |
|
|
|
def select_speaker(self, last_speaker: Agent, selector: AssistantAgent): |
|
|
|
last_message = self.messages[-1] if self.messages else None |
|
last_speaker_name = last_speaker.name if last_speaker else None |
|
|
|
self.previous_speaker = last_speaker |
|
|
|
if last_speaker_name == "Admin": |
|
return self.agent_by_name("Layout_refiner") |
|
elif last_speaker_name == "Layout_refiner": |
|
return self.agent_by_name("Json_schema_debugger") |
|
elif last_speaker_name == "Json_schema_debugger": |
|
if "SUCCESS" not in last_message["content"]: |
|
return self.agent_by_name("Layout_refiner") |
|
else: |
|
return self.agent_by_name("Admin") |
|
|