AgentVerse's picture
bump version to 0.1.8
01523b5
from __future__ import annotations
from typing import TYPE_CHECKING, Any, List
from string import Template
from . import describer_registry as DescriberRegistry
from .basic import BasicDescriber
if TYPE_CHECKING:
from agentverse.environments import BaseEnvironment
@DescriberRegistry.register("classroom")
class ClassroomDescriber(BasicDescriber):
start_prompt: str
end_prompt: str
def get_env_description(self, environment: BaseEnvironment) -> List[str]:
if not environment.rule_params.get("is_grouped", False):
if environment.rule_params.get("is_grouped_ended", False):
# If the group discussion is just ended
environment.rule_params["is_grouped_ended"] = False
return [self.end_prompt for _ in range(len(environment.agents))]
else:
return super().get_env_description(environment)
description = []
for i, agent in enumerate(environment.agents):
if i == 0:
# Professor will not participate in group discussion
description.append("")
else:
description.append(
Template(self.start_prompt).safe_substitute(
{"receiver_name": ", ".join(agent.receiver)}
)
)
return description
def reset(self) -> None:
pass