ramanna's picture
Upload 30 files
b5a9373 verified
"""Configuration settings for LegiScan AI Governance Bills Tracker."""
import os
from pathlib import Path
import dotenv
dotenv.load_dotenv()
class ConfigManager:
def __init__(self):
"""
Initialize configuration with profile-specific settings.
Args:
profile (str): Configuration profile (production, development, testing)
"""
self._load_base_config()
def _load_base_config(self):
"""Load base configuration that applies to all profiles."""
self.OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
self.OPENAI_LLM_MODEL = os.getenv("OPENAI_LLM_MODEL", "gpt-4o")
def reload(self):
"""Reload configuration."""
self._load_base_config()
self._load_profile_config(self.profile)
self._validate_config()
def __str__(self) -> str:
"""Return string representation of non-sensitive config."""
sensitive_keys = ["OPENAI_API_KEY", "LEGISCAN_API_KEY"]
config_str = f"Configuration Profile: {self.profile}\n"
for key, value in self.__dict__.items():
if key.startswith("_"):
continue
if key in sensitive_keys:
config_str += f"{key}: {'*' * 8}\n"
else:
config_str += f"{key}: {value}\n"
return config_str
# Create default instance
config = ConfigManager()