This commit is contained in:
commit
46af290db3
100 files changed
+16663
No files matched your search
@@ -0,0 +1,48 @@
|
||||
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()
|
||||
Reference in new issue
Block a user