JeCabrera commited on
Commit
bdceaf0
·
verified ·
1 Parent(s): 72c0252

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +109 -0
app.py CHANGED
@@ -416,5 +416,114 @@ if prompt := st.chat_input('¿En qué puedo ayudarte hoy?'):
416
 
417
  # Salir del bucle si la solicitud fue exitosa
418
  break
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
419
 
420
 
 
416
 
417
  # Salir del bucle si la solicitud fue exitosa
418
  break
419
+
420
+ # Configuración inicial de la página
421
+ st.set_page_config(
422
+ page_title="RoboCopy - Creador de PUVs",
423
+ page_icon="🚀",
424
+ layout="wide"
425
+ )
426
+
427
+ # Título y subtítulo principales
428
+ st.title("💡 RoboCopy - Asistente de PUVs")
429
+ st.markdown("### Tu experto en crear Propuestas Únicas de Valor que convierten")
430
+
431
+ # Ejemplos de prompts
432
+ st.markdown("### 🎯 Prueba estos ejemplos:")
433
+
434
+ # Contenedor para los ejemplos
435
+ example_container = st.container()
436
+ col1, col2 = example_container.columns(2)
437
+
438
+ with col1:
439
+ if st.button("¿Cuál es la mejor fórmula para mi PUV? 🤔"):
440
+ prompt = "¿Podrías explicarme cuál es la mejor fórmula para crear una PUV efectiva para mi negocio?"
441
+ st.session_state.messages = []
442
+ st.session_state.current_chat_id = str(time.time())
443
+ st.rerun()
444
+
445
+ if st.button("Necesito una PUV para mi tienda online 🛍️"):
446
+ prompt = "Quiero crear una PUV para mi tienda online de ropa sostenible dirigida a mujeres de 25-35 años"
447
+ st.session_state.messages = []
448
+ st.session_state.current_chat_id = str(time.time())
449
+ st.rerun()
450
+
451
+ with col2:
452
+ if st.button("Ayúdame a mejorar mi PUV actual ✨"):
453
+ prompt = "¿Podrías ayudarme a mejorar mi PUV actual para hacerla más persuasiva?"
454
+ st.session_state.messages = []
455
+ st.session_state.current_chat_id = str(time.time())
456
+ st.rerun()
457
+
458
+ if st.button("Crear PUV para servicios profesionales 👔"):
459
+ prompt = "Necesito una PUV para mi servicio de consultoría en marketing digital"
460
+ st.session_state.messages = []
461
+ st.session_state.current_chat_id = str(time.time())
462
+ st.rerun()
463
+
464
+ # Separador visual
465
+ st.markdown("---")
466
+
467
+ # Implementación de reintentos con retroceso exponencial
468
+ max_retries = 3
469
+ retry_count = 0
470
+ while retry_count < max_retries:
471
+ try:
472
+ # Enviar mensaje al modelo
473
+ response = st.session_state.chat.send_message(prompt, stream=True)
474
+
475
+ # Procesar la respuesta completa
476
+ full_text = ""
477
+ for chunk in response:
478
+ full_text += chunk.text
479
+
480
+ # Mostrar respuesta del asistente con efecto de escritura
481
+ mensaje_mostrado = mostrar_con_efecto_escritura(full_text, velocidad=0.05)
482
+
483
+ # Añadir respuesta al historial
484
+ st.session_state.messages.append({
485
+ 'role': MODEL_ROLE,
486
+ 'content': mensaje_mostrado,
487
+ 'avatar': AI_AVATAR_ICON,
488
+ })
489
+
490
+ # Actualizar historial
491
+ st.session_state.gemini_history = st.session_state.chat.history
492
+
493
+ # Actualizar chat en memoria
494
+ st.session_state.chats_in_memory[st.session_state.current_chat_id].update({
495
+ 'messages': st.session_state.messages,
496
+ 'gemini_history': st.session_state.gemini_history,
497
+ 'title': st.session_state.chat_title
498
+ })
499
+
500
+ break
501
+
502
+ except Exception as e:
503
+ retry_count += 1
504
+ if retry_count >= max_retries:
505
+ error_message = f"Lo siento, estoy experimentando problemas para procesar tu solicitud. Por favor, intenta de nuevo más tarde. Error: {str(e)}"
506
+
507
+ with st.chat_message(name=MODEL_ROLE, avatar=AI_AVATAR_ICON):
508
+ st.error(error_message)
509
+
510
+ st.session_state.messages.append({
511
+ 'role': MODEL_ROLE,
512
+ 'content': error_message,
513
+ 'avatar': AI_AVATAR_ICON,
514
+ })
515
+
516
+ # Actualizar chat en memoria con el error
517
+ st.session_state.chats_in_memory[st.session_state.current_chat_id].update({
518
+ 'messages': st.session_state.messages,
519
+ 'gemini_history': st.session_state.gemini_history,
520
+ 'title': st.session_state.chat_title
521
+ })
522
+ else:
523
+ wait_time = (2 ** retry_count) + (time.time() % 1)
524
+ time.sleep(wait_time)
525
+
526
+ # Salir del bucle si la solicitud fue exitosa
527
+ break
528
 
529