Spaces:
Running
Running
File size: 1,351 Bytes
54db4e6 730c6ee 54db4e6 730c6ee 54db4e6 d051ea8 54db4e6 d051ea8 54db4e6 730c6ee d051ea8 54db4e6 730c6ee d051ea8 54db4e6 730c6ee 54db4e6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
"""
Chat helper: message classes and history.
"""
class ChatMessage:
"""Base class for chat messages."""
def __init__(self, content: str, role: str):
self.content = content
self.role = role
self.type = role # For compatibility with existing code
class HumanMessage(ChatMessage):
"""Message from human user."""
def __init__(self, content: str):
super().__init__(content, 'user')
class AIMessage(ChatMessage):
"""Message from AI assistant."""
def __init__(self, content: str):
super().__init__(content, 'ai')
class ChatMessageHistory:
"""Chat message history stored in a list."""
def __init__(self):
self.messages = []
def add_user_message(self, content: str):
"""Append user message to the history."""
self.messages.append(HumanMessage(content))
def add_ai_message(self, content: str):
"""Append AI-generated response to the history."""
self.messages.append(AIMessage(content))
class ChatPromptTemplate:
"""Template for chat prompts."""
def __init__(self, template: str):
self.template = template
@classmethod
def from_template(cls, template: str):
return cls(template)
def format(self, **kwargs):
return self.template.format(**kwargs)
|