23 lines
789 B
Python
23 lines
789 B
Python
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 |