bitcheck-document / app /config.py
AI Assistant
Update Bitcheck Document Service and test.html
37a1755
Raw
History Blame Contribute Delete
1.32 kB
import os
from dataclasses import dataclass
from functools import lru_cache
from pathlib import Path
from dotenv import load_dotenv
load_dotenv()
@dataclass(frozen=True)
class Settings:
app_name: str
version: str
upload_dir: Path
output_dir: Path
max_upload_mb: int
max_pdf_pages: int
deepseek_api_key: str | None
deepseek_base_url: str
deepseek_model: str
log_level: str
@property
def max_upload_bytes(self) -> int:
return self.max_upload_mb * 1024 * 1024
@property
def deepseek_available(self) -> bool:
return bool(self.deepseek_api_key)
@lru_cache
def get_settings() -> Settings:
return Settings(
app_name=os.getenv("APP_NAME", "BitCheck Document Verification API"),
version=os.getenv("VERSION", "1.0.0"),
upload_dir=Path(os.getenv("UPLOAD_DIR", "uploads")),
output_dir=Path(os.getenv("OUTPUT_DIR", "outputs")),
max_upload_mb=int(os.getenv("MAX_UPLOAD_MB", "20")),
max_pdf_pages=int(os.getenv("MAX_PDF_PAGES", "5")),
deepseek_api_key=os.getenv("DEEPSEEK_API_KEY"),
deepseek_base_url=os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com"),
deepseek_model=os.getenv("DEEPSEEK_MODEL", "deepseek-chat"),
log_level=os.getenv("LOG_LEVEL", "INFO"),
)