Flask-Tester / main.py
ParthCodes's picture
Upload 3 files
b33ffc9
raw
history blame
1.81 kB
from flask import Flask, request
import joblib
import pandas as pd
from flask_cors import CORS
app = Flask(__name__)
app.static_folder = 'static'
app.static_url_path = '/static'
app.secret_key = "roadsense-abhi-2023"
CORS(app)
# Load the model
model = joblib.load('accident_prediction_model_Final.m5')
# Load the encoder
encoder = joblib.load('encoder.pkl')
@app.route('/', methods=['GET'])
def main():
return {'message': 'Hello, World'}
@app.route('/prediction', methods=['POST'])
def prediction():
data = request.get_json()
num_input = {'Latitude': data['Latitude'], 'Longitude': data['Longitude'], 'person_count': data['personCount']}
cat_input = {'weather_conditions': data['selectedWeatherCondition'], 'impact_type': data['selectedImpactType'],
'traffic_voilations': data['selectedTrafficViolationType'],
'road_features': data['selectedRoadFeaturesType'],
'junction_types': data['selectedRoadJunctionType'],
'traffic_controls': data['selectedTrafficControl'], 'time_day': data['selectedTimeOfDay'],
'age_group': data['selectedAge'], 'safety_features': data['selectedSafetyFeature'],
'injury': data['selectedInjuryType']}
input_df = pd.DataFrame([cat_input])
encoded_input = encoder['encoder'].transform(input_df)
encoded_input_df = pd.DataFrame(encoded_input, columns=encoder['encoded_columns'])
num_df = pd.DataFrame([num_input])
input_with_coords = pd.concat([num_df, encoded_input_df], axis=1)
# Make a prediction using the trained model
prediction = model.predict(input_with_coords)
temp = False
if prediction[0] == 1:
temp = True
return {'prediction': temp}
if __name__ == '__main__':
app.run()