Source code for slidedeckai.helpers.chat_helper

"""Chat helper: message classes and history."""


[docs] class ChatMessage: """Base class for chat messages."""
[docs] def __init__(self, content: str, role: str): self.content = content self.role = role self.type = role # For compatibility with existing code
[docs] class HumanMessage(ChatMessage): """Message from human user."""
[docs] def __init__(self, content: str): super().__init__(content, 'user')
[docs] class AIMessage(ChatMessage): """Message from AI assistant."""
[docs] def __init__(self, content: str): super().__init__(content, 'ai')
[docs] class ChatMessageHistory: """Chat message history stored in a list."""
[docs] def __init__(self): self.messages = []
[docs] def add_user_message(self, content: str): """Append user message to the history.""" self.messages.append(HumanMessage(content))
[docs] def add_ai_message(self, content: str): """Append AI-generated response to the history.""" self.messages.append(AIMessage(content))
[docs] class ChatPromptTemplate: """Template for chat prompts."""
[docs] def __init__(self, template: str): self.template = template
[docs] @classmethod def from_template(cls, template: str): return cls(template)
[docs] def format(self, **kwargs): return self.template.format(**kwargs)