import os from pathlib import Path from dotenv import load_dotenv # Загружаем переменные окружения из .env файла load_dotenv() class Settings: # API ключи OPENROUTER_API_KEY: str = os.getenv("OPENROUTER_API_KEY", "") OPENROUTER_BASE_URL: str = os.getenv( "OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1" ) # Ollama — в Docker это будет не localhost, а имя контейнера или IP хоста OLLAMA_BASE_URL: str = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434") # Путь к данным — по умолчанию локальная папка, в Docker будет монтироваться volume DATA_DIR: str = os.getenv("DATA_DIR", "data") # Окружение ENVIRONMENT: str = os.getenv("ENVIRONMENT", "development") # CORS — разрешённые источники (в production это будет домен) CORS_ORIGINS: list = os.getenv("CORS_ORIGINS", "http://localhost:3000").split(",") # JWT секрет — в production обязательно переопределить через .env JWT_SECRET_KEY: str = os.getenv( "JWT_SECRET_KEY", "your-super-secret-key-change-in-production" ) def validate(self) -> dict: """Проверить, какие провайдеры настроены""" return { "ollama": True, # Ollama всегда доступна локально "openrouter": bool( self.OPENROUTER_API_KEY and self.OPENROUTER_API_KEY != "your_api_key_here" ), "data_dir": self.DATA_DIR, "cors_origins": self.CORS_ORIGINS, } # Singleton instance settings = Settings()