import os from typing import Optional class Config: """Centralized configuration for the SmolLM API""" # Server Configuration PORT: int = int(os.getenv("PORT", "7860")) HOST: str = "0.0.0.0" # Cache Configuration HF_HOME: str = os.getenv("HF_HOME", "/app/cache") # CPU Configuration N_THREADS: int = int(os.getenv("CPU_THREADS", "2")) # Text Model Configuration TEXT_MODEL_REPO: str = "bartowski/SmolLM2-1.7B-Instruct-GGUF" TEXT_MODEL_FILE: str = "SmolLM2-1.7B-Instruct-Q4_K_M.gguf" TEXT_MODEL_CTX: int = 2048 TEXT_MODEL_BATCH: int = 512 # Vision Model Configuration # FIXED: Corrected capitalization for Repository and Filenames VISION_MODEL_REPO: str = "ggml-org/SmolVLM-500M-Instruct-GGUF" # IMPORTANT: These filenames must match the Repo EXACTLY (Case-Sensitive) VISION_MODEL_FILE: str = "SmolVLM-500M-Instruct-Q8_0.gguf" VISION_MMPROJ_FILE: str = "mmproj-SmolVLM-500M-Instruct-f16.gguf" VISION_MODEL_CTX: int = 2048 VISION_MODEL_BATCH: int = 512 # Default Generation Parameters DEFAULT_TEMPERATURE: float = 0.6 DEFAULT_MAX_TOKENS: int = 512 # File Upload Configuration MAX_FILE_SIZE: int = 10 * 1024 * 1024 # 10MB ALLOWED_IMAGE_EXTENSIONS: set = {".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp"} config = Config()