Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import asyncio | |
| import joblib | |
| import pandas as pd | |
| model = joblib.load("best_random_forest_model.joblib") | |
| asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy()) | |
| def keep_alive(): | |
| try: | |
| predict_loan_status(10000, 10, 600, 250, 5000) | |
| return "ok" | |
| except Exception as e: | |
| return "error:", str(e) | |
| def predict_loan_status( | |
| 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', | |
| ]) | |
| scaler = joblib.load('std_scaler.bin') | |
| # Convert the dictionary to a 2D array | |
| input_array = user_input_df.values | |
| # print(user_input_df) | |
| scaled_array = scaler.transform(input_array) | |
| # print('scaled array', scaled_array) | |
| prediction = model.predict(scaled_array) | |
| # print('Prediction: ', prediction) | |
| return prediction[0] | |
| options = ['Current', 'Completed', 'ChargedOff'] | |
| 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") | |
| ] | |
| outputs = gr.Label() | |
| title = "Loan Status Classifier" | |
| description = ( | |
| "Enter the details of the loan to check the status of the loan." | |
| ) | |
| with gr.Blocks() as demo: | |
| gr.Interface( | |
| fn=predict_loan_status, | |
| inputs=inputs, | |
| outputs=outputs, | |
| title=title, | |
| description=description, | |
| ).render() | |
| with gr.Row(visible=False): | |
| ka_out = gr.Textbox(label="keep_alive_out") | |
| ka_btn = gr.Button("keep_alive_btn") | |
| ka_btn.click(fn=keep_alive, | |
| inputs=None, | |
| outputs=ka_out, | |
| api_name="keep_alive" | |
| ) | |
| demo.launch(share=True, ssr_mode=False) | |
| # def greet(name): | |
| # return "Hello " + name + "!!" | |
| # | |
| # | |
| # iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| # iface.launch() | |