import os from dotenv import load_dotenv load_dotenv() class Settings: # API Keys ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "") GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") # AI Provider Selection (claude or gemini) AI_PROVIDER = os.getenv("AI_PROVIDER", "gemini") # Server Settings MCP_SERVER_HOST = os.getenv("MCP_SERVER_HOST", "0.0.0.0") MCP_SERVER_PORT = int(os.getenv("MCP_SERVER_PORT", "8001")) # Database DATABASE_URL = os.getenv("DATABASE_URL", "") REDIS_URL = os.getenv("REDIS_URL", "") # Logging LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") # Claude Settings CLAUDE_MODEL = os.getenv("CLAUDE_MODEL", "claude-3-5-sonnet-20241022") # Gemini Settings GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-2.0-flash") # Common AI Settings (AI_PROVIDER에 따라 자동 선택) MAX_TOKENS = int(os.getenv( "GEMINI_MAX_TOKENS" if AI_PROVIDER == "gemini" else "CLAUDE_MAX_TOKENS", "1024" )) TEMPERATURE = float(os.getenv( "GEMINI_TEMPERATURE" if AI_PROVIDER == "gemini" else "CLAUDE_TEMPERATURE", "0.3" )) # Token Optimization Settings TOKEN_SAVE_MODE = os.getenv("TOKEN_SAVE_MODE", "false").lower() == "true" NEWS_LIMIT = int(os.getenv("NEWS_LIMIT", "5")) CHART_DAYS = int(os.getenv("CHART_DAYS", "100")) JSON_COMPACT = os.getenv("JSON_COMPACT", "false").lower() == "true" # CORS (이슈 5) # 서버-서버 통신용: 브라우저 credentials 불필요. # Docker 환경: MCP_CORS_ORIGINS=http://backend:8000 # 개발 환경: MCP_CORS_ORIGINS=http://localhost:8000,http://127.0.0.1:8000 MCP_CORS_ORIGINS = os.getenv( "MCP_CORS_ORIGINS", "http://localhost:8000,http://127.0.0.1:8000,http://backend:8000", ) settings = Settings()