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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -19
app.py CHANGED
@@ -47,28 +47,85 @@ 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
- # 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")
 
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")