79 lines
2.1 KiB
Python
79 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Conversation history management for the LLM interaction system.
|
|
"""
|
|
|
|
|
|
class ConversationManager:
|
|
"""Manages conversation history between user and LLM."""
|
|
|
|
def __init__(self):
|
|
"""Initialize the conversation manager."""
|
|
self.history = []
|
|
|
|
def add_user_message(self, message):
|
|
"""Add a user message to the conversation history.
|
|
|
|
Args:
|
|
message (str): The user's message
|
|
"""
|
|
self.history.append({
|
|
"role": "user",
|
|
"content": message
|
|
})
|
|
|
|
def add_system_message(self, message):
|
|
"""Add a system message to the conversation history.
|
|
|
|
Args:
|
|
message (str): The system message
|
|
"""
|
|
self.history.append({
|
|
"role": "system",
|
|
"content": message
|
|
})
|
|
|
|
def add_assistant_message(self, message):
|
|
"""Add an assistant message to the conversation history.
|
|
|
|
Args:
|
|
message (str): The assistant's message
|
|
"""
|
|
self.history.append({
|
|
"role": "assistant",
|
|
"content": message
|
|
})
|
|
|
|
def get_history(self):
|
|
"""Get the complete conversation history.
|
|
|
|
Returns:
|
|
list: List of message dictionaries
|
|
"""
|
|
return self.history
|
|
|
|
def clear_history(self):
|
|
"""Clear the conversation history."""
|
|
self.history = []
|
|
|
|
def get_last_user_message(self):
|
|
"""Get the last user message from history.
|
|
|
|
Returns:
|
|
str: The last user message, or None if no user messages
|
|
"""
|
|
for message in reversed(self.history):
|
|
if message["role"] == "user":
|
|
return message["content"]
|
|
return None
|
|
|
|
def get_last_assistant_message(self):
|
|
"""Get the last assistant message from history.
|
|
|
|
Returns:
|
|
str: The last assistant message, or None if no assistant messages
|
|
"""
|
|
for message in reversed(self.history):
|
|
if message["role"] == "assistant":
|
|
return message["content"]
|
|
return None |