Files
auto-stock/mcp-server/config.py

59 lines
1.8 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"
# 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()