File size: 3,159 Bytes
18faf97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# ----------------------------------------------------------------------
# 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