|
|
import streamlit as st |
|
|
import requests |
|
|
import pandas as pd |
|
|
import streamlit_toggle as tog |
|
|
from configparser import ConfigParser |
|
|
|
|
|
str_to_array = lambda items: [item.strip("\" ") for item in items.split(',')] |
|
|
|
|
|
config = ConfigParser() |
|
|
config.read('./config.ini') |
|
|
|
|
|
if config['DEFAULT']['production'] == 'True': |
|
|
URL = config['PRODUCTION']['URL'] |
|
|
else: |
|
|
URL = config['DEVELOPMENT']['URL'] |
|
|
|
|
|
def run(): |
|
|
st.title("TelkomselPredictor") |
|
|
|
|
|
with st.form(key='predictor'): |
|
|
customerID = st.text_input( |
|
|
label="Customer IDs, separate it with a comma" |
|
|
) |
|
|
fetch_customer_data = tog.st_toggle_switch( |
|
|
label="Fetch the customer data", |
|
|
) |
|
|
|
|
|
submitted = st.form_submit_button('Predict') |
|
|
|
|
|
if submitted: |
|
|
customerID_final = str_to_array(customerID) |
|
|
print("[DEBUG] customerID:", customerID_final) |
|
|
|
|
|
r = requests.post( |
|
|
URL+"/predict", |
|
|
json={ |
|
|
"customerID": customerID_final, |
|
|
"fetch_customer_data": fetch_customer_data |
|
|
} |
|
|
) |
|
|
|
|
|
if r.status_code == 200: |
|
|
res = r.json() |
|
|
st.dataframe(pd.DataFrame(res)) |
|
|
else: |
|
|
st.write('Error with status code ', str(r.status_code)) |
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
run() |