import streamlit as st import pandas as pd import requests def run(): with st.form(key='form_parameters'): customerID = st.text_input('Customer ID') gender = st.radio('Gender', ('Male', 'Female')) SeniorCitizen = st.radio('Is a Senior Citizen', (0, 1)) Partner = st.radio('Have a Partner', ('Yes', 'No')) Dependents = st.radio('Have any Dependents', ('Yes', 'No')) PhoneService = st.radio('Phone Service', ('Yes', 'No')) MultipleLines = st.radio('Multiple Lines', ('Yes', 'No', 'No phone service')) InternetService = st.radio('Internet Service', ('DSL', 'Fiber Optic', 'No')) OnlineSecurity = st.radio('Online Security', ('Yes', 'No', 'No internet service')) OnlineBackup = st.radio('Online Backup', ('Yes', 'No', 'No internet service')) DeviceProtection = st.radio('Device Protection', ('Yes', 'No', 'No internet service')) TechSupport = st.radio('Tech Support', ('Yes', 'No', 'No internet service')) StreamingTV = st.radio('Streaming TV', ('Yes', 'No', 'No internet service')) StreamingMovies = st.radio('Streaming Movies', ('Yes', 'No', 'No internet service')) tenure = st.number_input('Tenure', min_value=1, value=5) Contract = st.radio('Contract Term', ('Month-to-month', 'One year', 'Two year')) PaperlessBilling = st.radio('Paperless Billing', ('Yes', 'No')) PaymentMethod = st.radio('Payment Method', ('Bank transfer (automatic)', 'Credit card (automatic)', 'Electronic check', 'Mailed check')) MonthlyCharges = st.number_input('Monthly Charges', min_value=0, value=50) TotalCharges = st.number_input('Total Charges', min_value=0, value=1000) submitted = st.form_submit_button('Predict') # Create A New data data_inf = { 'customerID': customerID, 'gender': gender, 'SeniorCitizen': SeniorCitizen, 'Partner': Partner, 'Dependents': Dependents, 'PhoneService': PhoneService, 'MultipleLines': MultipleLines, 'InternetService': InternetService, 'OnlineSecurity': OnlineSecurity, 'OnlineBackup': OnlineBackup, 'DeviceProtection': DeviceProtection, 'TechSupport': TechSupport, 'StreamingTV': StreamingTV, 'StreamingMovies': StreamingMovies, 'tenure': tenure, 'Contract': Contract, 'PaperlessBilling': PaperlessBilling, 'PaymentMethod': PaymentMethod, 'MonthlyCharges': MonthlyCharges, 'TotalCharges': TotalCharges } if submitted: # Show Inference DataFrame st.dataframe(pd.DataFrame([data_inf])) print('[DEBUG] Data Inference : \n', data_inf) # Predict URL = "https://backend-m1p2-casheu.koyeb.app/predict" r = requests.post(URL, json=data_inf) if r.status_code == 200: res = r.json() st.write('## Prediction : ', res['label_names']) print('[DEBUG] Result : ', res) print('') else: st.write('Error with status code ', str(r.status_code)) if __name__ == '__main__': run()