50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
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"
|
|
|
|
|
|
settings = Settings()
|