import tensorflow as tf import numpy as np from PIL import Image MODEL_PATH = "/app/src/best_model.h5" IMG_SIZE = 224 model = tf.keras.models.load_model(MODEL_PATH) def preprocess(image): image = image.resize((IMG_SIZE, IMG_SIZE)) image = np.array(image) image = np.expand_dims(image, axis=0) return image def load_model_and_predict(image): img = preprocess(image) pred = model.predict(img) class_index = np.argmax(pred) confidence = np.max(pred) # class mapping inside function (safe fallback) class_names = [ 'Tomato___Bacterial_spot', 'Tomato___Early_blight', 'Tomato___Late_blight', 'Tomato___Leaf_Mold', 'Tomato___Septoria_leaf_spot', 'Tomato___Spider_mites Two-spotted_spider_mite', 'Tomato___Target_Spot', 'Tomato___Tomato_Yellow_Leaf_Curl_Virus', 'Tomato___Tomato_mosaic_virus', 'Tomato___healthy' ] return class_names[class_index], float(confidence)