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)