Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from fastai.vision.all import * | |
| app = Flask(__name__) | |
| learn = load_learner("export.pkl") | |
| labels = learn.dls.vocab | |
| ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif"} | |
| def allowed_file(filename): | |
| return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS | |
| def predict(): | |
| if "file" not in request.files: | |
| return jsonify({"message": "No file part in the request"}), 400 | |
| file = request.files["file"] | |
| if file.filename == "": | |
| return jsonify({"message": "No selected file"}), 400 | |
| if file and allowed_file(file.filename): | |
| img = PILImage.create(file) | |
| pred, pred_idx, probs = learn.predict(img) | |
| return {labels[i]: float(probs[i]) for i in range(len(labels))} | |
| else: | |
| return jsonify({"message": "File type not allowed"}), 400 | |
| if __name__ == "__main__": | |
| app.run(debug=True) |