from pydantic import BaseModel from typing import List from datetime import datetime, timezone from .message import Message class Conversation(BaseModel): messages: List[Message] = [] def add_message(self, message: Message | List[Message]) -> None: """Add a Message(s) to the conversation.""" if isinstance(message, Message): self.messages.append(message) else: self.messages.extend(message) def get_summary(self) -> str: """Return a summary of the conversation.""" if not self.messages: return "Conversation is empty." summary = f"Conversation:\n" for i, message in enumerate(self.messages, 1): summary += f"\nMessage {i}:\n{message.get_summary()}\n" return summary