File size: 2,922 Bytes
dfe6290
f443824
dfe6290
 
 
c0f0676
f89cac3
dfe6290
c6ae5fd
dfe6290
 
 
c6ae5fd
 
 
 
 
 
 
 
 
 
 
 
 
c0f0676
c6ae5fd
c0f0676
f89cac3
 
 
 
 
c6ae5fd
 
dfe6290
c6ae5fd
 
dfe6290
c6ae5fd
 
 
dfe6290
c6ae5fd
 
dfe6290
c6ae5fd
dfe6290
c6ae5fd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ecd875
 
 
 
c6ae5fd
 
 
 
 
 
 
 
38dd285
c6ae5fd
 
 
 
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
82
83
84
85
86
import streamlit as st
from time import sleep

from src.st_helpers import st_setup
from src.common import *
from src.architectures import Architecture
from src.testing import TestGroup


if st_setup('LLM Arch'):
    st.write("# System Status")

    if 'admin_logged_in' not in st.session_state:
        entered_pw = st.text_input(label="Enter the admin password to manage the system", type="password")
        if st.button('Login'):
            if entered_pw == st.secrets['admin_pw']:
                st.session_state['admin_logged_in'] = True
                st.rerun()
            else:
                st.error("Incorrect password")
    else:
        st.write("## Wipe Trace Logs")
        if st.button("Wipe logs"):
            Architecture.wipe_trace()
        st.write('Note - wipe will only wipe the temporary file, DB persisted records will be saved')

        st.divider()

        if st.button("Reload traces"):
            TestGroup.load_all(True)

        st.divider()

        st.write("## HF Inference Endpoint Statuses")
        st.write("The following endpoints need to be running to run all the demonstrations.")

        endpoints = st.secrets['endpoints'].split(',')
        refresh = False

        for i, e in enumerate(endpoints):
            status = hf_endpoint_status('alfraser', e)
            message = f'{e} ({status})'

            if i != 0:
                st.divider()

            status_col, button_col = st.columns([2, 1])

            if status == HF_RUNNING:
                with status_col:
                    st.success(message)
                with button_col:
                    if st.button("Pause", key=f'action_{i}'):
                        pause_hf_endpoint('alfraser', e)
                        st.rerun()
            elif status == HF_SCALEDTOZERO:
                with status_col:
                    st.error(message)
            elif status == HF_PAUSED:
                with status_col:
                    st.warning(message)
                with button_col:
                    if st.button("Resume", key=f'action_{i}'):
                        resume_hf_endpoint('alfraser', e)
                        st.rerun()
            elif status == HF_FAILED:
                with status_col:
                    st.error(message)
                with button_col:
                    if st.button("Pause (to restart)", key=f'action_{i}'):
                        pause_hf_endpoint('alfraser', e)
                        st.rerun()
            else:
                refresh = True
                with status_col:
                    st.info(message)
                with button_col:
                    if st.button("Pause", key=f'action_{i}'):
                        pause_hf_endpoint('alfraser', e)
                        st.rerun()

        if refresh:
            with st.spinner('Updating every 10 seconds...'):
                sleep(10)
                st.rerun()