import streamlit as st # Titolo dell'applicazione st.title("Mini App di Automazione Flussi (Esempio)") # --- Gestione dello stato del flusso --- # Usiamo st.session_state per ricordare a che punto siamo nel flusso, # anche quando l'utente interagisce con l'app. if 'current_step' not in st.session_state: st.session_state.current_step = 1 # Inizia dal passo 1 if 'user_choice' not in st.session_state: st.session_state.user_choice = None # Scelta dell'utente if 'user_input' not in st.session_state: st.session_state.user_input = "" # Input dell'utente # --- Definizione dei Passaggi del Flusso --- # PASSO 1: Scelta del tipo di azione if st.session_state.current_step == 1: st.header("Passo 1: Scegli l'azione") options = ["Seleziona...", "Elabora Testo", "Inserisci Dati"] choice = st.selectbox("Che tipo di operazione vuoi simulare?", options) git clone https://huggingface.co/spaces/TATUMAi/README import streamlit as st x = st.slider('Select a value') st.write(x, 'squared is', x * x) git add app.py && git commit -m 'Add application file' && git push if choice != "Seleziona...": if st.button("Vai al Passo 2"): st.session_state.user_choice = choice st.session_state.current_step = 2 st.rerun() # Ricarica l'app per mostrare il passo successivo # PASSO 2: Esecuzione dell'azione scelta elif st.session_state.current_step == 2: st.header(f"Passo 2: {st.session_state.user_choice}") if st.session_state.user_choice == "Elabora Testo": text = st.text_area("Inserisci il testo da elaborare:") operation = st.radio("Scegli operazione:", ["Conta Parole", "Converti in Maiuscolo"]) if st.button("Esegui e Vai al Riepilogo"): if operation == "Conta Parole": result = f"Il testo contiene {len(text.split())} parole." elif operation == "Converti in Maiuscolo": result = text.upper() else: result = "Operazione non valida." st.session_state.user_input = text # Salva l'input st.session_state.result = result # Salva il risultato st.session_state.current_step = 3 st.rerun() elif st.session_state.user_choice == "Inserisci Dati": name = st.text_input("Nome:") email = st.text_input("Email:") if st.button("Salva e Vai al Riepilogo"): result = f"Dati inseriti: Nome={name}, Email={email}" st.session_state.user_input = f"Nome: {name}\nEmail: {email}" # Salva l'input st.session_state.result = result # Salva il risultato st.session_state.current_step = 3 st.rerun() # Pulsante per tornare indietro (opzionale) if st.button("Torna al Passo 1"): st.session_state.current_step = 1 st.session_state.user_choice = None st.session_state.user_input = "" st.session_state.result = "" st.rerun() # PASSO 3: Riepilogo/Fine elif st.session_state.current_step == 3: st.header("Passo 3: Riepilogo Flusso") st.write(f"Azione scelta: {st.session_state.user_choice}") st.subheader("Input fornito:") st.text(st.session_state.user_input) st.subheader("Risultato:") st.success(st.session_state.result) # st.success mostra un box verde if st.button("Ricomincia Flusso"): # Resetta tutto per ricominciare st.session_state.current_step = 1 st.session_state.user_choice = None st.session_state.user_input = "" st.session_state.result = "" st.rerun() # --- Footer (opzionale) --- st.sidebar.info(f"Stato attuale: Passo {st.session_state.current_step}") if st.session_state.user_choice: st.sidebar.write(f"Azione: {st.session_state.user_choice}")