fahrulputraa40's picture
Update backend/app.py
96a95c2 verified
from flask import Flask, request, jsonify, send_from_directory
import io
import os
from PIL import Image
import numpy as np
import tensorflow as tf
app = Flask(__name__, static_folder='../frontend', static_url_path='')
model = tf.keras.models.load_model("backend/model.keras")
@app.route("/")
def index():
return send_from_directory(app.static_folder, "index.html")
@app.route("/predict", methods=["POST"])
def predict():
file = request.files.get("file")
if file is None:
return jsonify({"error": "No file uploaded"}), 400
try:
img = Image.open(io.BytesIO(file.read())).convert("RGB").resize((32, 32))
arr = np.array(img).astype("float32") / 255.0
arr = np.expand_dims(arr, axis=0)
preds = model.predict(arr)
top_idx = int(np.argmax(preds[0]))
result = {
"class": top_idx,
"confidence": float(preds[0][top_idx]),
}
return jsonify(result)
except Exception as e:
return jsonify({"error": f"Gagal memproses gambar: {str(e)}"}), 500