| 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") |
|
|