import logging import os from pydantic import BaseModel, Field # 🚀 SPEED OPTIMIZATION: Force HF to use the high-speed Rust transfer protocol os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1" # Set standard logging logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", datefmt="%H:%M:%S" ) # 🔇 SILENCE THE HTTP SPAM logging.getLogger("httpx").setLevel(logging.WARNING) logging.getLogger("httpcore").setLevel(logging.WARNING) logging.getLogger("uvicorn.access").setLevel(logging.WARNING) logging.getLogger("uvicorn.error").setLevel(logging.WARNING) def get_logger(name: str): return logging.getLogger(name) class AppConfig(BaseModel): # FORCE Zarr to use the guaranteed-writable /tmp directory on HF Spaces cache_dir: str = Field(default="/tmp/video_cache.zarr", description="Strict Zarr v3 SSD cache") clip_model_id: str = Field(default="openai/clip-vit-base-patch32") vlm_model_id: str = Field(default="vikhyatk/moondream2") vlm_revision: str = Field(default="main") collection_name: str = Field(default="multimodal_rag") default_fps: int = Field(default=1) batch_size: int = Field(default=64, description="Batch size for faster CLIP processing") config = AppConfig()