# ---------------------------------------------------------------------- # API CONFIGURATION # ---------------------------------------------------------------------- API_TITLE = "Product Image Update" API_VERSION = "1.0.0" API_DESCRIPTION = """ ## Product Image Processing Process product images with: - Background removal - Object detection - Smart cropping and padding - Base64 encoding ### Endpoints: - `/api/predict` - Process single image - `/api/rb_and_crop` - Shopify webhook endpoint - `/api/batch` - Batch processing - `/health` - Health check - `/api/docs` - API documentation """ API_HOST = "0.0.0.0" API_PORT = 7860 SERVER_RELOAD = False # ---------------------------------------------------------------------- # GPU DURATION SETTINGS # ---------------------------------------------------------------------- GPU_DURATION_SHORT = 60 GPU_DURATION_MEDIUM = 90 GPU_DURATION_LONG = 120 # ---------------------------------------------------------------------- # ERROR MESSAGES # ---------------------------------------------------------------------- ERROR_INVALID_PAYLOAD = "Invalid payload structure" ERROR_INVALID_FIELDS = "Invalid fields in payload" ERROR_NO_VALID_URLS = "No valid image URLs provided" ERROR_NO_PROCESSED_IMAGES = "No images were successfully processed" ERROR_MODEL_NOT_LOADED = "Models are not loaded yet" ERROR_PROCESSING_FAILED = "Image processing failed" # ---------------------------------------------------------------------- # RESPONSE STATUS CODES # ---------------------------------------------------------------------- STATUS_SUCCESS = "success" STATUS_ERROR = "error" STATUS_PARTIAL_SUCCESS = "partial_success" STATUS_PROCESSED = "processed" STATUS_NOT_PROCESSED = "not_processed" # ---------------------------------------------------------------------- # HTTP STATUS CODES # ---------------------------------------------------------------------- HTTP_OK = 200 HTTP_BAD_REQUEST = 400 HTTP_NOT_FOUND = 404 HTTP_METHOD_NOT_ALLOWED = 405 HTTP_UNPROCESSABLE_ENTITY = 422 HTTP_INTERNAL_SERVER_ERROR = 500 # ---------------------------------------------------------------------- # PROCESSING CONFIGURATION # ---------------------------------------------------------------------- MAX_IMAGE_SIZE = 10 * 1024 * 1024 SUPPORTED_IMAGE_FORMATS = ["jpg", "jpeg", "png", "webp"] DEFAULT_PRODUCT_TYPE = "General" BATCH_SIZE = 5 DOWNLOAD_TIMEOUT = 30 PROCESSING_TIMEOUT = 120 # ---------------------------------------------------------------------- # MODEL CONFIGURATION # ---------------------------------------------------------------------- MODEL_CACHE_DIR = "/tmp/models" USE_MIXED_PRECISION = True ENABLE_MODEL_CACHING = True # ---------------------------------------------------------------------- # LOGGING CONFIGURATION # ---------------------------------------------------------------------- LOG_LEVEL = "INFO" LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # ---------------------------------------------------------------------- # SYSTEM LIMITS # ---------------------------------------------------------------------- MAX_CONCURRENT_REQUESTS = 10 MAX_BATCH_SIZE = 20 MEMORY_CLEANUP_THRESHOLD = 80