File size: 2,214 Bytes
82ff6e3
be3edae
fe8b78f
82ff6e3
be3edae
 
4ef062b
fe8b78f
 
 
 
 
 
 
4ef062b
be3edae
 
82ff6e3
 
be3edae
82ff6e3
56f79c4
 
be3edae
27ada96
 
 
 
 
82ff6e3
 
291e60a
be3edae
82ff6e3
 
b2f7cf7
27ada96
56f79c4
b2f7cf7
 
82ff6e3
27ada96
 
 
 
 
82ff6e3
291e60a
be3edae
82ff6e3
bb2cf6a
b2f7cf7
27ada96
b2f7cf7
82ff6e3
4ef062b
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
# pipeline_app.py
import streamlit as st
from utils import add_navigation, add_instruction_text
from utils import pipeline_data

def render():
    add_navigation("txt_developer_decisions", "txt_ica")

    add_instruction_text(
        """
        Developers make a huge number of decisions when designing ML models. <br>
        Dive into some examples below to get a feel of how model design works.
        """
    )
    
    if "active_stage" not in st.session_state:
        st.session_state.active_stage = None
    if "active_substage" not in st.session_state:
        st.session_state.active_substage = None

    # Level 1: Stages
    cols = st.columns(len(pipeline_data))
    for idx, stage in enumerate(pipeline_data.keys()):
        with cols[idx]:
            if st.session_state.active_stage==stage:
                button_click_s = st.button(stage, type="primary")
            else:
                button_click_s = st.button(stage)
            if button_click_s:
                st.session_state.active_stage = stage
                st.session_state.active_substage = None
                st.rerun()

    # Level 2: Sub-stages
    if st.session_state.active_stage:
        st.markdown(pipeline_data[st.session_state.active_stage]["explain_text"])
        st.markdown("---")
        sub_stages = pipeline_data[st.session_state.active_stage]
        sub_cols = st.columns(len(sub_stages)-1)
        for idx, sub in enumerate(set(sub_stages.keys()) - {"explain_text"}):
            with sub_cols[idx]:
                if st.session_state.active_substage==sub:
                    button_click_ss = st.button(sub, type="primary")
                else:
                    button_click_ss = st.button(sub)
                if button_click_ss:
                    st.session_state.active_substage = sub
                    st.rerun()

    # Questions
    if st.session_state.active_substage:
        st.markdown(pipeline_data[st.session_state.active_stage][st.session_state.active_substage]["explain_text"])
        st.markdown("---")
        questions = pipeline_data[st.session_state.active_stage][st.session_state.active_substage]["sub_decisions"]
        for q in questions:
            st.write(f"- {q}")