object / app.py
msabonkudi's picture
Update app.py
2f1e708 verified
from flask import Flask, request, redirect, url_for, flash, jsonify
from detect_object import predict_object_function
import os
from flask_wtf import CSRFProtect
from waitress import serve
app = Flask(__name__)
app.config['SECRET_KEY'] = '8BYkEfBA6O6zWlSihBXox7C0sKR6b'
csrf = CSRFProtect(app)
@app.route('/')
def home():
return "Hello Wav2Lip - Flask API Running on Hugging Face Spaces!"
@app.route('/predict_object', methods=['POST'])
@csrf.exempt
def predict_object():
# Receive image file from frontend
image_file = request.files['media']
image_path = os.path.join('predict_image', image_file.filename)
image_file.save(image_path)
try:
result = predict_object_function(image_path)
print(result)
except RuntimeError as e:
text = f"{str(e)})", 'danger'
return {"response": text}
except Exception as e:
print(str(e))
text = "An error occurred during prediction. Please try again"
return {"response": text}
finally:
os.remove(image_path)
imgs = result
no_p = len(imgs)
if no_p < 1:
response = {"response": "No object detected."}
return jsonify(response)
percentage = result[1]
# response = {'response': f"Detected {result[0]} with confidence of {round(percentage, 2)}%"}
response = {'response': f"{result[0]}", "confidence": round(percentage, 2)}
return jsonify(response)
if __name__ == '__main__':
serve(app, host='0.0.0.0', port=7860)