from typing import Optional
from pydantic import BaseModel, Field
from schema.group_message import GroupMessage
from schema.group_agent import GroupAgent
[docs]
class GroupConversation(BaseModel):
"""
This class is used to store the group conversation
"""
conversation_topic:Optional[str] = Field(description="The conversation topic", default=None)
messages: list[GroupMessage] = Field(description="The messages in the conversation", default_factory=list)
group_agent:GroupAgent = Field(description="The group agent")
final_artifact:str = Field(description="The final artifact", default=None)
done : bool = Field(validation_alias="Done", description="The done flag", default=False)
[docs]
class Config:
"""
This class is used to configure the pydantic model
"""
arbitrary_types_allowed = True
[docs]
def add_message(self, message:GroupMessage)->None:
"""
Adds a message to the conversation
Args:
message: The message to add
"""
self.messages.append(message)
[docs]
def get_messages(self)->list[GroupMessage]:
"""
Gets the messages
Returns:
The messages
"""
return self.messages