import os from pathlib import Path class Config: """Configuration loaded from environment variables (OCR_ prefix).""" BASE_DIR = Path(__file__).parent # Core paths UPLOAD_DIR = Path(os.environ.get("OCR_UPLOAD_DIR", str(BASE_DIR / "uploads"))) # Security API_KEY = os.environ.get("OCR_API_KEY", "") # Server (defaults for HF Spaces: 0.0.0.0:7860) DEBUG = os.environ.get("OCR_DEBUG", "false").lower() == "true" HOST = os.environ.get("OCR_HOST", "0.0.0.0") PORT = int(os.environ.get("OCR_PORT", "7860")) # Limits MAX_CONTENT_LENGTH = int(os.environ.get("OCR_MAX_REQUEST_SIZE", str(10 * 1024 * 1024))) # HF Inference API (for VLM extraction) HF_API_TOKEN = os.environ.get("HF_API_TOKEN", "") VLM_MODEL = os.environ.get("OCR_VLM_MODEL", "Qwen/Qwen3-VL-8B-Instruct") VLM_PROVIDER = os.environ.get("OCR_VLM_PROVIDER", "novita") # Supported document types SUPPORTED_DOC_TYPES = {"sa_id_card", "sa_id_book", "passport"} # Logging LOG_LEVEL = os.environ.get("OCR_LOG_LEVEL", "INFO") LOG_FORMAT = os.environ.get("OCR_LOG_FORMAT", "json")