esteele's picture
Update app.py
6c288ca verified
import asyncio
import joblib
import gradio as gr
import joblib
import pandas as pd
from gradio_client import Client
model = joblib.load("loan_status_classifier_pipeline.joblib")
asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
def predict(
loan_original_amount,
credit_score_range_lower,
stated_monthly_income,
investors,
monthly_loan_payment,):
input_dict = {
'LoanOriginalAmount': loan_original_amount,
'CreditScoreRangeLower': credit_score_range_lower,
'StatedMonthlyIncome': stated_monthly_income,
'Investors': investors,
'MonthlyLoanPayment': monthly_loan_payment,
}
user_input_df = pd.DataFrame(data=[[loan_original_amount,
credit_score_range_lower,
stated_monthly_income,
investors,
monthly_loan_payment]],
columns=[
'LoanOriginalAmount',
'CreditScoreRangeLower',
'StatedMonthlyIncome',
'Investors',
'MonthlyLoanPayment',
])
response = model.predict(user_input_df.values)
print(f"Response: {response}")
return response[0]
inputs = [
gr.Slider(1000, 100000, label="Loan Original Amount"),
gr.Slider(100, 2000, step=1, label='Credit Score Range (Lower)'),
gr.Slider(1000, 100000, step=10, label="Stated Monthly Income"),
gr.Slider(0, 1000, step=1, label='Number of Investors'),
gr.Slider(20, 5000, step=5, label="Monthly Loan Payment")
]
options = ['Current', 'Completed', 'ChargedOff']
outputs = gr.Label()
title = "Loan Status Classifier"
description = (
"Enter the details of the loan to check the status of the loan."
)
gr.Interface(
fn=predict,
inputs=inputs,
outputs=outputs,
title=title,
description=description,
api_name="predict"
).launch(share=True, ssr_mode=False)