from wsgiref import simple_server from flask import Flask, request, render_template, Response import flask_monitoringdashboard as dashboard from training_Validation_Insertion import train_validation from trainingModel import trainModel from prediction_Validation_Insertion import Pred_validation from predictFromModel import prediction import os app = Flask(__name__) dashboard.bind(app) @app.route('/', methods=['GET']) def home(): return render_template('index.html') @app.route('/predict', methods=['POST']) def predictRoute(): try: if request.json is not None: path = request.json['filepath'] pred_val = Pred_validation(path) # initialize validation object pred_val.prediction_validation() # call the prediction validation function pred = prediction(path) # initialize prediction object path, json_predictions = pred.predictFromModel() # call model prediction function return Response("Prediction file created at "+str(path) + ". Few predictions are "+str(json_predictions) ) except ValueError: return Response("Error Occurred! %s" % ValueError) except KeyError: return Response("Error Occurred! %s" % KeyError) except Exception as e: return Response("Error Occurred! %s" % e) @app.route('/train', methods=['POST']) def trainRoute(): try: if request.json is not None: path = request.json['folderpath'] train_val = train_validation(path) # initialize validation object train_val.train_validation() # call the prediction validation function train_model = trainModel() # initialize prediction object train_model.trainingModel() # call model prediction function return Response("Training successful!!") except ValueError: return Response("Error Occurred! %s" % ValueError) except KeyError: return Response("Error Occurred! %s" % KeyError) except Exception as e: return Response("Error Occurred! %s" % e) port = int(os.getenv("PORT",5000)) if __name__ == "__main__": host = '0.0.0.0' #port = 5000 httpd = simple_server.make_server(host, port, app) # print("Serving on %s %d" % (host, port)) httpd.serve_forever()