File size: 4,455 Bytes
9f33893
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import os
import asyncio
import http.server
import socketserver
import streamlit as st

servers = []
clients = []
inputs = []
outputs = []
states = []
used_ports = []
connections = []
server_ports = []
client_ports = []

st.set_page_config(layout="wide")

if "http_server" not in st.session_state:
    
    PORT = 8001
    Handler = http.server.SimpleHTTPRequestHandler
    st.session_state.http_server = PORT

    with socketserver.TCPServer(("", PORT), Handler) as httpd:
        print("serving at port", PORT)
        httpd.serve_forever()

if "client_state" not in st.session_state:
    st.session_state.client_state = "complete"
if "server_state" not in st.session_state:
    st.session_state.server_state = "complete"          

# Wyświetlanie danych, które mogą być modyfikowane na różnych stronach
server_status1 = st.status(label="websocket servers", state=st.session_state.server_state, expanded=False)
server_status = st.sidebar.status(label="websocket servers", state=st.session_state.server_state, expanded=False)
server_status1.write(servers)
server_status.write(servers)

client_status1 = st.status(label="websocket clients", state=st.session_state.client_state, expanded=False)
client_status = st.sidebar.status(label="websocket clients", state=st.session_state.client_state, expanded=False)
client_status1.write(clients)
client_status.write(clients)

async def main():

    # Inicjalizacja danych w st.session_state
    if "server_ports" not in st.session_state:
        st.session_state['server_ports'] = ""
    if "client_ports" not in st.session_state:
        st.session_state["client_ports"] = ""
    if "servers" not in st.session_state:
        st.session_state['servers'] = servers
    if "clients" not in st.session_state:
        st.session_state["clients"] = clients
    if "user_ID" not in st.session_state:
        st.session_state.user_ID = ""
    if "gradio_Port" not in st.session_state:
        st.session_state.gradio_Port = ""              
    if "googleAPI" not in st.session_state:
        st.session_state.googleAPI = ""
    if "cseID" not in st.session_state:
        st.session_state.cseID = ""
    if "server" not in st.session_state:
        st.session_state.server = False    
    if "client" not in st.session_state:
        st.session_state.client = False
    if "client_state" not in st.session_state:
        st.session_state.client_state = "complete"
    if "server_state" not in st.session_state:
        st.session_state.server_state = "complete"        


    st.title("NeuralGPT")

    c1, c2 = st.columns(2)

    with c1:
        st.text("Server ports")
        srv_state = st.empty()
        server_status1 = srv_state.status(label="active servers", state=st.session_state.client_state, expanded=False)
        if st.session_state.server == True:
            st.session_state.server_state = "running"
            server_status1.update(state=st.session_state.client_state, expanded=True)
            server_status1.write(servers)

    with c2:   
        st.text("Client ports")        
        cli_state = st.empty()
        client_status1 = cli_state.status(label="active clients", state=st.session_state.client_state, expanded=False)
        if st.session_state.client == True:    
            st.session_state.client_state = "running"
            client_status1.update(state=st.session_state.client_state, expanded=True)
            client_status1.write(clients)

    with st.sidebar:

        srv_sidebar = st.empty()
        cli_sidebar = st.empty()        
        server_status = srv_sidebar.status(label="los serveros", state=st.session_state.client_state, expanded=True)
        client_status = cli_sidebar.status(label="los clientos", state=st.session_state.client_state, expanded=False)
        server_status.write(servers)
        client_status.write(clients)

        if st.session_state.server == True:
            srv_sidebar.empty()
            st.session_state.server_state = "running"
            server_status = srv_sidebar.status(label="servers", state=st.session_state.client_state, expanded=True)
            server_status.write(servers)

        if st.session_state.client == True:
            cli_sidebar.empty()
            st.session_state.client_state = "running"
            client_status = cli_sidebar.status(label="clients", state=st.session_state.client_state, expanded=True)
            client_status.write(clients)

# Uruchomienie aplikacji
asyncio.run(main())