|
"""Conversation tracking for BF chatbot""" |
|
|
|
import json |
|
import os |
|
from datetime import datetime |
|
from typing import List, Dict, Any |
|
|
|
|
|
CONVERSATIONS_FILE = "conversations.json" |
|
MAX_CONVERSATIONS = 100 |
|
|
|
def load_conversations(): |
|
"""Load conversation history from file""" |
|
if os.path.exists(CONVERSATIONS_FILE): |
|
try: |
|
with open(CONVERSATIONS_FILE, 'r', encoding='utf-8') as f: |
|
return json.load(f) |
|
except: |
|
return [] |
|
return [] |
|
|
|
def save_conversations(conversations): |
|
"""Save conversations to file""" |
|
try: |
|
|
|
if len(conversations) > MAX_CONVERSATIONS: |
|
conversations = conversations[-MAX_CONVERSATIONS:] |
|
|
|
with open(CONVERSATIONS_FILE, 'w', encoding='utf-8') as f: |
|
json.dump(conversations, f, ensure_ascii=False, indent=2) |
|
except Exception as e: |
|
print(f"Error saving conversations: {e}") |
|
|
|
def add_conversation(user_message, bot_response): |
|
"""Add a new conversation to history""" |
|
conversations = load_conversations() |
|
|
|
conversation = { |
|
"timestamp": datetime.now().isoformat(), |
|
"user": user_message, |
|
"bot": bot_response |
|
} |
|
|
|
conversations.append(conversation) |
|
save_conversations(conversations) |
|
|
|
return conversation |