arithescientist's picture
Update app.py
c3b373d verified
from flask import Flask, request, render_template
from flask_cors import CORS
import numpy as np
import pandas as pd
import pickle
app = Flask(__name__)
CORS(app)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/report')
def report():
return render_template('report.html')
@app.route('/code')
def code():
return render_template('code.html')
def analysis2(missedprior,totalmissed,reminded,age,hyper,diabetes):
column = ['missed_appointment_before', 'sum_missed', 'Age', 'SMS_received',
'Hypertension', 'Diabetes']
serInput = [missedprior,totalmissed,age,reminded,hyper,diabetes]
data = pd.DataFrame([serInput], columns=column)
filename = './models/xgbnoshow.sav'
model = pickle.load(open(filename, 'rb'))
data = np.ascontiguousarray(data, dtype=np.float32)
r = model.predict(data)
for i in r:
if r == 0:
result = str("Might Miss")
else:
result = str("Might Show")
proba = np.max(model.predict_proba(data)*100, axis=1)
pred = str( (result) + ' With A Probability of: ' +'%.2f' % (proba) +'%')
return pred
@app.route('/predictnoshow', methods=['GET', 'POST'])
def uploadsnoshow():
if request.method == 'GET':
# Get the file from post request
missedprior = int(request.args['MissedPrior'])
totalmissed = int(request.args['TotalMissed'])
reminded = int(request.args['Reminded'])
age = int(request.args['Age'])
hyper = int(request.args['Hypertension'])
diabetes = int(request.args['Diabetes'])
serInput = [missedprior,totalmissed,reminded,age,hyper,diabetes]
result = analysis2(missedprior,totalmissed,reminded,age,hyper,diabetes)
return render_template('index.html', predictions=result)
return None
if __name__ == "__main__":
print("๐Ÿš€ Starting Flask app...")
app.run(debug=True, host="0.0.0.0", port=7860)