def main()

in src/streamlit_demo.py [0:0]


def main():
    """
    TSP demo.
    """
    route_length = st.slider('Route length', 10, 300, 50, step=10)
    
    if 'data' not in st.session_state:
        st.session_state.data = None
    
    if st.button('Generate a new TSP problem'):
        st.session_state.data = generate_one_tsp_problem(num_nodes=route_length)
        X = np.array(st.session_state.data[0]["nodes"])
        st.info(f'The TSP problem has {route_length} nodes')
        fig_norm = plot_route_on_normspace(np.arange(0, route_length), X[0, :, 0], X[0, :, 1], 0, plot_arrow=False)
        print("data loaded ...")
        if (fig_norm is not None):
            st.pyplot(fig_norm)
    serializer = JSONLinesSerializer()
    deserializer = JSONLinesDeserializer()
    
    # get the latest endpoint
    endpoint_name = get_latest_endpoint()

    if st.button('Routing via the Deep Reinforcement Learning model...'):
        # Retrieve app state
        app_state = st.experimental_get_query_params()  
    
        rank_list, so_list = inference_endpoint(st.session_state.data,
                   endpoint_name,
                   serializer,
                   deserializer)
        X = np.array(st.session_state.data[0]["nodes"])
        fig_norm = plot_route_on_normspace(so_list, X[0, :, 0], X[0, :, 1], 0)
        print("route loaded ...")
        if (fig_norm is not None):
            st.pyplot(fig_norm)