wafer-detection / app.py
app.py
Raw
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()