README / TA2MA
TheWolfOfChain's picture
Creat TA2MApp
6053054 verified
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}")