JeCabrera commited on
Commit
c1a05bc
·
verified ·
1 Parent(s): 05b8861

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -39
app.py CHANGED
@@ -254,9 +254,17 @@ def process_model_response(prompt, max_retries=3):
254
  time.sleep(wait_time)
255
  return False
256
 
257
- # Modificar la sección principal de manejo de chat (línea ~286)
258
  if prompt := st.chat_input('¿En qué puedo ayudarte hoy?'):
259
- is_first_message = len(st.session_state.messages) == 0 # Definir aquí
 
 
 
 
 
 
 
 
260
 
261
  # Generar título basado en el primer mensaje del usuario
262
  try:
@@ -271,48 +279,17 @@ if prompt := st.chat_input('¿En qué puedo ayudarte hoy?'):
271
  # Actualizar título en memoria
272
  st.session_state.chats_in_memory[st.session_state.current_chat_id]['title'] = st.session_state.chat_title
273
 
274
- add_message(MODEL_ROLE, WELCOME_MESSAGE, AI_AVATAR_ICON)
275
- with st.chat_message(name=MODEL_ROLE, avatar=AI_AVATAR_ICON, key="welcome_msg"):
 
 
 
276
  st.markdown(WELCOME_MESSAGE)
277
  update_chat_memory()
278
- st.experimental_rerun()
279
 
280
  process_model_response(prompt) # Mantener dentro del bloque
281
 
282
- # Eliminar la referencia duplicada fuera del bloque if prompt
283
-
284
- # Mostrar ejemplos solo si show_examples es True y no hay mensajes previos
285
- if st.session_state.show_examples and not st.session_state.messages:
286
- # Usar contenedor para ancho completo
287
- main_container = st.container()
288
-
289
- with main_container:
290
- st.title("💡 RoboCopy - Asistente de PUVs")
291
- st.markdown("### Tu experto en crear Propuestas Únicas de Valor que convierten")
292
-
293
- st.markdown("### 🎯 Prueba estos ejemplos:")
294
-
295
- # Usar columnas con proporción ajustada para mejor distribución
296
- col1, col2 = st.columns([1, 1])
297
-
298
- with col1:
299
- if st.button("¿Cuál es la mejor fórmula para mi PUV? 🤔", use_container_width=True):
300
- handle_example_click("¿Podrías explicarme cuál es la mejor fórmula para crear una PUV efectiva para mi negocio?")
301
-
302
- if st.button("Necesito una PUV para mi tienda online 🛍️", use_container_width=True):
303
- handle_example_click("Quiero crear una PUV para mi tienda online de ropa sostenible dirigida a mujeres de 25-35 años")
304
-
305
- with col2:
306
- if st.button("Ayúdame a mejorar mi PUV actual ✨", use_container_width=True):
307
- handle_example_click("¿Podrías ayudarme a mejorar mi PUV actual para hacerla más persuasiva?")
308
-
309
- if st.button("Crear PUV para servicios profesionales 👔", use_container_width=True):
310
- handle_example_click("Necesito una PUV para mi servicio de consultoría en marketing digital")
311
-
312
- st.markdown("---")
313
-
314
- # Actualizar la función handle_example_click (línea ~250)
315
- def handle_example_click(prompt_text):
316
  st.session_state.update({
317
  'show_examples': False,
318
  'messages': [],
@@ -339,3 +316,33 @@ if st.session_state.show_examples and not st.session_state.messages:
339
  st.session_state.chats_in_memory[st.session_state.current_chat_id]['title'] = st.session_state.chat_title
340
  process_model_response(prompt_text)
341
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  time.sleep(wait_time)
255
  return False
256
 
257
+
258
  if prompt := st.chat_input('¿En qué puedo ayudarte hoy?'):
259
+ is_first_message = len(st.session_state.messages) == 0
260
+
261
+ # Añadir inicialización de chat si no existe
262
+ if st.session_state.current_chat_id not in st.session_state.chats_in_memory:
263
+ st.session_state.chats_in_memory[st.session_state.current_chat_id] = {
264
+ 'messages': [],
265
+ 'gemini_history': [],
266
+ 'title': 'Nuevo Chat'
267
+ }
268
 
269
  # Generar título basado en el primer mensaje del usuario
270
  try:
 
279
  # Actualizar título en memoria
280
  st.session_state.chats_in_memory[st.session_state.current_chat_id]['title'] = st.session_state.chat_title
281
 
282
+ # El mensaje de bienvenida se añade SIEMPRE que hay input
283
+ # Debe condicionarse a is_first_message
284
+ if is_first_message:
285
+ add_message(MODEL_ROLE, WELCOME_MESSAGE, AI_AVATAR_ICON)
286
+ with st.chat_message(name=MODEL_ROLE, avatar=AI_AVATAR_ICON, key="welcome_msg"):
287
  st.markdown(WELCOME_MESSAGE)
288
  update_chat_memory()
 
289
 
290
  process_model_response(prompt) # Mantener dentro del bloque
291
 
292
+ def handle_example_click(prompt_text):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  st.session_state.update({
294
  'show_examples': False,
295
  'messages': [],
 
316
  st.session_state.chats_in_memory[st.session_state.current_chat_id]['title'] = st.session_state.chat_title
317
  process_model_response(prompt_text)
318
 
319
+ # Mostrar ejemplos solo si show_examples es True y no hay mensajes previos
320
+ if st.session_state.show_examples and not st.session_state.messages:
321
+ # Usar contenedor para ancho completo
322
+ main_container = st.container()
323
+
324
+ with main_container:
325
+ st.title("💡 RoboCopy - Asistente de PUVs")
326
+ st.markdown("### Tu experto en crear Propuestas Únicas de Valor que convierten")
327
+
328
+ st.markdown("### 🎯 Prueba estos ejemplos:")
329
+
330
+ # Usar columnas con proporción ajustada para mejor distribución
331
+ col1, col2 = st.columns([1, 1])
332
+
333
+ with col1:
334
+ if st.button("¿Cuál es la mejor fórmula para mi PUV? 🤔", use_container_width=True):
335
+ handle_example_click("¿Podrías explicarme cuál es la mejor fórmula para crear una PUV efectiva para mi negocio?")
336
+
337
+ if st.button("Necesito una PUV para mi tienda online 🛍️", use_container_width=True):
338
+ handle_example_click("Quiero crear una PUV para mi tienda online de ropa sostenible dirigida a mujeres de 25-35 años")
339
+
340
+ with col2:
341
+ if st.button("Ayúdame a mejorar mi PUV actual ✨", use_container_width=True):
342
+ handle_example_click("¿Podrías ayudarme a mejorar mi PUV actual para hacerla más persuasiva?")
343
+
344
+ if st.button("Crear PUV para servicios profesionales 👔", use_container_width=True):
345
+ handle_example_click("Necesito una PUV para mi servicio de consultoría en marketing digital")
346
+
347
+ st.markdown("---")
348
+