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)