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 43 44 45 46 47
| from flask import Flask, request, send_file, make_response from model import * import os import torch import cv2
os.environ['CUDA_VISIBLE_DEVICES'] = '0' os.environ['CUDA_LAUNCH_BLOCKING'] = '1' use_cuda = torch.cuda.is_available()
app = Flask(__name__)
model=... root_dir = ... if not os.path.exists(root_dir): os.makedirs(root_dir)
@app.route('/predict_from_file', methods=['POST']) def predict(): file = request.files.get('file') if file: file.save(root_dir + '/' + file.filename) input_file = load(root_dir + '/' + file.filename) results = model.inference(input_file) return make_response(results) else: return 'No file uploaded'
@app.route('/get_file', methods=['GET']) def getresult(): filename = request.args.get('file') if not filename: return "Missing parameter: file" filepath = root_dir + '/' + filename try: return send_file(filepath, as_attachment=True, attachment_filename=filename) except FileNotFoundError: return "The file does not exist"
if __name__ == '__main__': app.run(host='0.0.0.0', port=8000)
|