File size: 2,791 Bytes
a086192
 
4071be5
 
 
 
a086192
4071be5
 
a086192
4071be5
a086192
4071be5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a086192
 
 
 
 
4071be5
a086192
 
 
 
 
 
4071be5
a086192
 
4071be5
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import streamlit as st
import pandas as pd
import logging
from deeploy import Client
from utils import ChangeButtonColour
from utils import get_input_values, get_texts, feature_texts, example_input, response, first_five_posneg_indices

# reset Plotly theme after streamlit import
import plotly.io as pio

pio.templates.default = "plotly"

logging.basicConfig(level=logging.INFO)

st.set_page_config(layout="wide")

st.title("Observing potential fraudulent transactions")
st.write(
    "Fill in left hand side and click on button to observe a potential fraudulent transaction"
)

st.divider()

def get_model_url():
    model_url = st.text_area(
        "Model URL (without the /explain endpoint, default is the demo deployment)",
        "https://api.app.deeploy.ml/workspaces/708b5808-27af-461a-8ee5-80add68384c7/deployments/dc8c359d-5f61-4107-8b0f-de97ec120289/",
        height=125,
    )
    elems = model_url.split("/")
    try:
        workspace_id = elems[4]
        deployment_id = elems[6]
    except IndexError:
        workspace_id = ""
        deployment_id = ""
    return model_url, workspace_id, deployment_id

st.markdown("""
    <style>
        [data-testid=stSidebar] {
            background-color: #E0E0E0; ##E5E6EA
        }
    </style>
    """, unsafe_allow_html=True)

with st.sidebar:
    # Add deeploy logo
    st.image("deeploy_logo.png", width=270)
    # Ask for model URL and token
    host = st.text_input("Host (Changing is optional)", "app.deeploy.ml")
    model_url, workspace_id, deployment_id = get_model_url()
    deployment_token = st.text_input("Deeploy Model Token", "my-secret-token")
    if deployment_token == "my-secret-token":
        button_clicked = st.button("Get suspicious transaction", key="get1", help="Click to get a suspicious transaction", use_container_width=True, on_click=lambda: st.experimental_rerun())


ChangeButtonColour("Get suspicious transaction", '#FFFFFF', "#00052D")#'#FFFFFF', "#00052D"


positive_and_negative_indices = first_five_posneg_indices(response)
positive_texts, negative_texts = get_texts(positive_and_negative_indices, feature_texts)
positive_vals, negative_vals = get_input_values(positive_and_negative_indices, example_input)

# Create a function to generate a table
def create_table(texts, values, title):
    df = pd.DataFrame({"Feature Explanation": texts, 'Value': values})
    st.markdown(f'### {title}')  # Markdown for styling
    st.dataframe(df, hide_index=True)  # Display a simple table

# Arrange tables horizontally using Streamlit columns
col1, col2 = st.columns(2)

# Display tables in Streamlit columns
with col1:
    create_table(positive_texts, positive_vals, 'Important Suspicious Variables')

with col2:
    create_table(negative_texts, negative_vals, 'Important Unsuspicious Variables')