File size: 1,366 Bytes
9993c90
 
a918efd
9993c90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dcba3cd
9993c90
dcba3cd
 
9993c90
dcba3cd
9993c90
 
 
 
 
 
 
a918efd
 
 
9993c90
 
 
a918efd
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
import os
import logging
from pathlib import Path
from dotenv import load_dotenv
from ultralytics import YOLO

load_dotenv(override=True)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# ---------------- LOGGER ----------------
LOG_FILE = os.path.join(BASE_DIR, "api.log")

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(message)s",
    handlers=[logging.FileHandler(LOG_FILE), logging.StreamHandler()]
)

logger = logging.getLogger("WildlifeLogger")

ENV = os.getenv("ENV", "DEV").upper()
logger.info(f"Running in {ENV}")
UPLOAD_DIR = os.getenv("HF_BUCKET_ID")

if not UPLOAD_DIR:
    raise ValueError("HF_BUCKET_ID is not set in environment variables")

# ---------------- UPLOAD RULES --------w--------
MIN_IMAGES = 1
MAX_IMAGES = 1000
ALLOWED_EXTENSIONS = {"jpg", "jpeg", "png", "webp"}

# ---------------- YOLO MODELS ----------------
try:
    logger.info("Loading YOLO models...")
    DETECT_MODEL = YOLO("api/walidlife_models/detect/deer.onnx")
    BUCK_DOE_MODEL = YOLO("api/walidlife_models/classify/Buck_classificationt.onnx", task="classify")
    BUCK_TYPE_MODEL = YOLO("api/walidlife_models/classify/mules_vs_whitetails.onnx", task="classify")
    logger.info("YOLO models loaded")
except Exception as e:
    logger.error(f"YOLO load failed: {e}")
    DETECT_MODEL = BUCK_DOE_MODEL = BUCK_TYPE_MODEL = None