tonthw's picture
Rename app_predict_loan.py to app.py
859ae1b
import streamlit as st
import urllib.request
import json
st.title('Loan Prediction App')
# Create a form for user input
st.subheader('Enter Customer Information:')
gender = st.selectbox('Gender', ['Male', 'Female'])
married = st.selectbox('Married', ['Yes', 'No'])
dependents = st.selectbox('Dependents', ['0', '1', '2', '3+'])
education = st.selectbox('Education', ['Graduate', 'Not Graduate'])
self_employed = st.selectbox('Self Employed', ['Yes', 'No'])
applicant_income = st.number_input('Applicant Income')
coapplicant_income = st.number_input('Coapplicant Income')
loan_amount = st.number_input('Loan Amount')
term = st.number_input('Term (in months)')
credit_history = st.selectbox('Credit History', ['0.0', '1.0'])
area = st.selectbox('Area', ['Urban', 'Rural', 'Semiurban'])
# When the user clicks the "Predict" button
if st.button('Predict'):
# Create the data payload
data = {
"Inputs": {
"data": [
{
"Gender": gender,
"Married": married,
"Dependents": dependents,
"Education": education,
"Self_Employed": self_employed,
"Applicant_Income": applicant_income,
"Coapplicant_Income": coapplicant_income,
"Loan_Amount": loan_amount,
"Term": term,
"Credit_History": float(credit_history),
"Area": area
}
]
},
"GlobalParameters": {
"method": "predict"
}
}
# Convert data to JSON
json_data = json.dumps(data).encode('utf-8')
# Send a POST request to the specified URL
url = 'http://28132852-a923-4783-b934-0c91b8f04bfa.southeastasia.azurecontainer.io/score'
headers = {'Content-Type': 'application/json'}
try:
response = urllib.request.urlopen(urllib.request.Request(url, json_data, headers))
# Read and display the result
result = response.read()
st.subheader('Prediction Result:')
st.json(json.loads(result))
except urllib.error.HTTPError as error:
st.error(f'The request failed with status code: {error.code}')
st.error(error.read().decode("utf8", 'ignore'))