import joblib import gradio as gr from models import HealthInsurance def load_data(): global _model global _column_transformer global _bins_annual_premium_type _model = joblib.load(filename = 'parameters/random_forrest.gz') _column_transformer = joblib.load(filename = 'parameters/column_transformer.joblib') _bins_annual_premium_type = joblib.load(filename = 'parameters/bins_annual_premium_type.joblib') def predict(df): health_insurance = HealthInsurance(_model,_column_transformer, _bins_annual_premium_type) df_predicted = health_insurance.predict(df) return df_predicted def input(): return gr.Dataframe(headers = ['previously_insured', 'annual_premium','vintage','gender', 'age','region_code','policy_sales_channel', 'driving_license','vehicle_age', 'vehicle_damage'], datatype = ['number','number','number','str','number', 'number','number','number','str','str'], row_count= 1, col_count= (10,'fixed'), type = 'pandas', label = 'Input') def output(): return gr.Dataframe(headers = ['previously_insured', 'annual_premium','vintage','gender', 'age','region_code','policy_sales_channel', 'driving_license','vehicle_age', 'vehicle_damage', 'score'], datatype = ['number','number','number','str','number', 'number','number','number','str','str', 'number'], type = 'pandas', label = 'Output') if __name__ == "__main__": load_data() iface = gr.Interface(fn=predict, inputs=input(), outputs=output(), title='Health Insurance App' ) iface.launch()