72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
import os
|
|
from functools import lru_cache
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
from pathlib import Path
|
|
from typing import Optional
|
|
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
|
jwtKey: Optional[str] = ""
|
|
is_mode_develop: int = 0
|
|
|
|
# Elasticsearch connection
|
|
elasticsearch_url: str = "http://localhost:9200"
|
|
elasticsearch_username: Optional[str] = None
|
|
elasticsearch_password: Optional[str] = None
|
|
elasticsearch_verify_certs: Optional[bool] = False
|
|
elasticsearch_ca_certs_path: Optional[str] = None
|
|
|
|
ai_rag_host: Optional[str] = None
|
|
ai_rag_host_gpu: Optional[str] = None
|
|
|
|
backup_file: Optional[str] = None
|
|
|
|
|
|
# Config base path where per-type configs live
|
|
config_base_path: str = "app/configs"
|
|
enable_back_permition: bool = False
|
|
|
|
# Networking
|
|
request_timeout_seconds: int = 30
|
|
disable_es_startup: bool = False
|
|
base_project:Path = Path(__file__).resolve().parent.parent.parent
|
|
|
|
current_user_id:Optional[int] = 0
|
|
|
|
|
|
permit_type:Optional[str] = "DB"
|
|
permit_db_type:Optional[str] = "mysql"
|
|
permit_database_user:Optional[str] = None
|
|
permit_database_password:Optional[str] = None
|
|
permit_database_host:Optional[str] = None
|
|
permit_database_port:Optional[int] = 8090
|
|
permit_database_name:Optional[str] = None
|
|
|
|
|
|
MYSQL_host:Optional[str] = None
|
|
MYSQL_username:Optional[str] = None
|
|
MYSQL_port:Optional[str] = None
|
|
MYSQL_password:Optional[str] = None
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
settings = Settings(env_file="config.env",env_file_encoding="utf-8",extra="ignore")
|
|
settings.elasticsearch_username = os.environ.get("ELASTIC_username")
|
|
settings.elasticsearch_password = os.environ.get("ELASTIC_password")
|
|
settings.elasticsearch_url = os.environ.get("ELASTIC_URL")
|
|
settings.ai_rag_host = os.environ.get("ai_rag_host")
|
|
settings.ai_rag_host_gpu = os.environ.get("ai_rag_host_gpu")
|
|
settings.jwtKey = os.environ.get("TAVASI_jwtKey")
|
|
settings.enable_back_permition = os.environ.get("CONFIG_enable_back_permition")
|
|
settings.is_mode_develop = os.environ.get("CONFIG_develop")
|
|
|
|
settings.MYSQL_host = os.environ.get("MYSQL_host")
|
|
settings.MYSQL_username = os.environ.get("MYSQL_username")
|
|
settings.MYSQL_port = os.environ.get("MYSQL_port")
|
|
settings.MYSQL_password = os.environ.get("MYSQL_password")
|
|
|
|
return settings
|
|
|