Files
writer-ide/backend/config/settings.py
T
admin 46af290db3
Build and Push Docker Images / build-and-push (push) Failing after 3m33s
initial commit
2026-11-07 16:39:43 +03:00

49 lines
1.7 KiB
Python

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()