""" Configuration settings for the AI Database Assistant. """ import logging from typing import List import os # API Configuration # Change only the BASE_URL for different deployment environments BASE_URL = os.environ.get("BASE_URL", "http://127.0.0.1:8000") # Development Environment # UI Configuration PAGE_TITLE = "AI Assistant" PAGE_LAYOUT = "wide" # Model Options - Simplified for better UX AVAILABLE_MODELS: List[str] = [ "gpt-4o-mini", # Fast & cost-effective "gpt-3.5-turbo", # Reliable & quick "gpt-4" # Most capable ] AVAILABLE_AGENTS: List[str] = [ "default", # General database assistant "sql-agent" # SQL optimization expert ] AVAILABLE_THEMES: List[str] = [ "Light", # Clean & bright "Dark" # Easy on eyes ] # Logging Configuration LOG_LEVEL = logging.INFO LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s" # UI Messages CHAT_INPUT_PLACEHOLDER = "Ask me something about your database..." THINKING_MESSAGE = "🧠 Processing..." WORKING_MESSAGE = "Working..." RETRY_BUTTON_TEXT = "🔄 Try Again" DOWNLOAD_BUTTON_TEXT = "📥 Download CSV" # Default Avatars (Base64 encoded SVGs) DEFAULT_USER_AVATAR = """ data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPCEtLSBkYXRhYmFzZSAtLT4KICA8ZWxsaXBzZSBjeD0iMTciIGN5PSI2IiByeD0iNS41IiByeT0iMi41IiBmaWxsPSIjV0ZGM0UwIiBzdHJva2U9IiNFRjZD MDAiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik0xMS41IDZ2NWMwIDEuMyAyLjQ2IDIuNCA1LjUgMi40czUuNS0xLjEgNS41LTIuNFY2IiBmaWxsPSIjV0ZGM0UwIiBzdHJva2U9IiNFRjZD MDAiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik0xMS41IDguNWMwIDEuMyAyLjQ2IDIuNCA1LjUgMi40czUuNS0xLjEgNS41LTIuNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRUY2QzAwIiBzdHJva2Utd2lkdGg9IjEiLz4KICA8IS0tIHVzZXIgYnVzdCAtLT4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iOSIgcj0iMyIgZmlsbD0iI0ZGQTcyNiIvPgogIDxwYXRoIGQ9Ik0yLjUgMTdjMC0yLjUgMi42LTQuNSA0LjUtNC41UzExLjUgMTQuNSAxMS41IDE3djEuNUgyLjVWMTd6IiBmaWxsPSIjRkZDQzgwIi8+Cjwvc3ZnPg== """ OUTLINE_INDIGO_USER =""" data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNjM2NkYxIiBzdHJva2Utd2lkdGg9IjEuMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxlbGxpcHNlIGN4PSIxMiIgY3k9IjUuNSIgcng9IjciIHJ5PSIyLjgiLz4KICAgIDxwYXRoIGQ9Ik01IDUuNXY3YzAgMS43IDMuMSAzIDcgM3M3LTEuMyA3LTMgMHYtNyIvPgogICAgPHBhdGggZD0iTSA1IDguOGMwIDEuNyAzLjEgMyA3IDNzNy0xLjMgNy0zIi8+CiAgICA8Y2lyY2xlIGN4PSI4LjIiIGN5PSIxMy44IiByPSIyLjIiLz4KICAgIDxwYXRoIGQ9Ik0zLjUgMTkuNWMuNy0yLjQgMy4xLTQgNC43LTRzNCAxLjYgNC43IDQiLz4KICA8L2c+Cjwvc3ZnPg== """ DARK_MODE_SLATE_AI=""" data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiByeD0iNiIgZmlsbD0iIzBGMTE3QSIvPgogIDwhLS0gc3R5bGl6ZWQgY3lsaW5kZXIgLS0+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iNyIgcng9IjciIHJ5PSIzIiBmaWxsPSIjMUYyOTM3IiBzdHJva2U9IiM5NEEzQjgiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik01IDd2N2MwIDEuNyAzLjEgMyA3IDNzNy0xLjMgNy0zVjciIGZpbGw9IiMxMTE4MjciIHN0cm9rZT0iIzk0QTNCOCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPHBhdGggZD0iTSA1IDEwYzAgMS43IDMuMSAzIDcgM3M3LTEuMyA3LTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzZCNzI4MCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPCEtLSBib3QgZmFjZSAtLT4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE1LjUiIHI9IjMiIGZpbGw9IiMxMTE4MjciIHN0cm9rZT0iIzk0QTNCOCIvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTUuNSIgcj0iMC43IiBmaWxsPSIjOTRBM0I4Ii8+CiAgPGNpcmNsZSBjeD0iMTMiIGN5PSIxNS41IiByPSIwLjciIGZpbGw9IiM5NEEzQjgiLz4KPC9zdmc+ """ DEFAULT_AI_AVATAR = """ data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImciIHgxPSIwIiB5MT0iMCIgeDI9IjI0IiB5Mj0iMjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRDQUY1MCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyRTdEMzIiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDwhLS0gZGF0YWJhc2UgLS0+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iNiIgcng9IjciIHJ5PSIzIiBmaWxsPSIjRThGNUU5IiBzdHJva2U9IiMyRTdEMzIiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik01IDZ2NmMwIDEuNjYgMy4xMyAzIDcgM3M3LTEuMzQgNy0zVjYiIGZpbGw9IiNFOEY1RTkiIHN0cm9rZT0iIzJFN0QzMiIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPHBhdGggZD0iTSA1IDljMCAxLjY2IDMuMTMgMyA3IDNzNy0xLjM0IDctMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMkU3RDMyIiBzdHJva2Utd2lkdGg9IjEiLz4KICA8IS0tIGJvdCBoZWFkIC0tPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTUuNSIgcj0iMyIgZmlsbD0idXJsKCNnKSIgLz4KICA8cmVjdCB4PSI5IiB5PSIxNC4yIiB3aWR0aD0iNiIgaGVpZ2h0PSIyLjYiIHJ4PSIxLjMiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuOSIvPgogIDxjaXJjbGUgY3g9IjEwLjciIGN5PSIxNS41IiByPSIwLjciIGZpbGw9IiMyRTdEMzIiLz4KICA8Y2lyY2xlIGN4PSIxMy4zIiBjeT0iMTUuNSIgcj0iMC43IiBmaWxsPSIjMkU3RDMyIi8+CiAgPCEtLSBhbnRlbm5hIC0tPgogIDxsaW5lIHgxPSIxMiIgeTE9IjEyLjMiIHgyPSIxMiIgeTI9IjEwLjMiIHN0cm9rZT0iIzJFN0QzMiIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI5LjciIHI9IjAuNiIgZmlsbD0iIzJFN0QzMiIvPgo8L3N2Zz4= """