Spaces:
No application file
No application file
| 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}") | |