JeCabrera commited on
Commit
02fd022
·
verified ·
1 Parent(s): ad21d39

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -76
app.py CHANGED
@@ -47,85 +47,28 @@ def generate_buyer_persona(product, skills, target_audience, temperature):
47
  return response.parts[0].text if response and response.parts else "Error generando el perfil de cliente ideal."
48
 
49
  # Función para actualizar el perfil del cliente
50
- def update_profile():
51
- # Mostrar mensaje de que está trabajando
52
- with st.spinner("Creando tu Cliente Ideal Soñado..."):
53
- st.session_state.perfil_cliente = generate_buyer_persona(
54
- st.session_state.producto,
55
- st.session_state.habilidades,
56
- st.session_state.publico_objetivo,
57
- st.session_state.creatividad
58
- )
59
-
60
- # Configurar la interfaz de usuario con Streamlit
61
- st.set_page_config(page_title="Generador de Cliente Ideal", page_icon="👤", layout="wide")
62
-
63
- # Leer el contenido del archivo manual.md si existe
64
- try:
65
- with open("manual.md", "r", encoding="utf-8") as file:
66
- manual_content = file.read()
67
- # Mostrar el contenido del manual en el sidebar
68
- st.sidebar.markdown(manual_content)
69
- except FileNotFoundError:
70
- st.sidebar.warning("Manual not found. Please create a manual.md file.")
71
- except Exception as e:
72
- st.sidebar.error(f"Error loading manual: {str(e)}")
73
-
74
- # Ocultar elementos de la interfaz
75
- st.markdown(styles["main_layout"], unsafe_allow_html=True)
76
 
77
- # Centrar el título y el subtítulo
78
- st.markdown("<h1 style='text-align: center;'>Generador de Perfil de Cliente Ideal</h1>", unsafe_allow_html=True)
79
- st.markdown("<h4 style='text-align: center;'>Crea un perfil detallado de tu cliente ideal basado en tu producto y habilidades.</h4>", unsafe_allow_html=True)
80
-
81
- # Añadir CSS personalizado para el botón
82
- st.markdown(styles["button"], unsafe_allow_html=True)
83
- # Añadir CSS personalizado para el botón de descarga
84
- st.markdown(styles["download_button"], unsafe_allow_html=True)
85
-
86
- # Crear columnas
87
- col1, col2 = st.columns([1, 2])
88
-
89
- # Columna de entrada
90
- # En la sección de columna de entrada, añadir un nuevo campo para el público objetivo
91
- with col1:
92
- producto = st.text_input("¿Qué producto o servicio ofreces?",
93
- value=st.session_state.producto,
94
- placeholder="Ejemplo: Curso de Inglés",
95
- key="producto_input")
96
- st.session_state.producto = producto
97
-
98
- habilidades = st.text_input("¿Cuáles son tus habilidades principales?",
99
- value=st.session_state.habilidades,
100
- placeholder="Ejemplo: Enseñanza, comunicación, diseño de contenidos",
101
- key="habilidades_input")
102
- st.session_state.habilidades = habilidades
103
-
104
- # Nuevo campo para público objetivo
105
- if 'publico_objetivo' not in st.session_state:
106
- st.session_state.publico_objetivo = ""
107
-
108
- publico_objetivo = st.text_input("¿Cuál es tu público objetivo? (opcional)",
109
- value=st.session_state.publico_objetivo,
110
- placeholder="Ejemplo: Profesionales entre 25-40 años interesados en desarrollo personal",
111
- key="publico_objetivo_input")
112
- st.session_state.publico_objetivo = publico_objetivo
113
-
114
- # Nivel de creatividad con slider
115
- creatividad = st.slider("Nivel de creatividad",
116
- min_value=0.0,
117
- max_value=2.0,
118
- value=st.session_state.creatividad,
119
- step=0.1,
120
- key="creatividad_slider")
121
- st.session_state.creatividad = creatividad
122
-
123
- # Botón para generar
124
- submit = st.button("GENERAR PERFIL DE CLIENTE IDEAL", on_click=update_profile)
125
 
126
- # Columna de resultados
127
  with col2:
128
- # Mostrar resultados si existen en el estado de la sesión
 
 
 
 
129
  if st.session_state.perfil_cliente:
130
  if not isinstance(st.session_state.perfil_cliente, str):
131
  st.error("Error al generar el perfil de cliente ideal")
 
47
  return response.parts[0].text if response and response.parts else "Error generando el perfil de cliente ideal."
48
 
49
  # Función para actualizar el perfil del cliente
50
+ # Inicializar variables de estado (añadir esta variable con las otras)
51
+ if 'is_generating' not in st.session_state:
52
+ st.session_state.is_generating = False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
+ # Modificar la función update_profile
55
+ def update_profile():
56
+ st.session_state.is_generating = True
57
+ st.session_state.perfil_cliente = generate_buyer_persona(
58
+ st.session_state.producto,
59
+ st.session_state.habilidades,
60
+ st.session_state.publico_objetivo,
61
+ st.session_state.creatividad
62
+ )
63
+ st.session_state.is_generating = False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
 
65
+ # En la columna de resultados
66
  with col2:
67
+ # Mostrar spinner si está generando
68
+ if st.session_state.is_generating:
69
+ st.spinner("Creando tu Cliente Ideal Soñado...")
70
+
71
+ # El resto del código de la columna permanece igual
72
  if st.session_state.perfil_cliente:
73
  if not isinstance(st.session_state.perfil_cliente, str):
74
  st.error("Error al generar el perfil de cliente ideal")