JeCabrera commited on
Commit
e369da7
·
verified ·
1 Parent(s): e278162

Upload 10 files

Browse files
Files changed (1) hide show
  1. app.py +45 -7
app.py CHANGED
@@ -108,11 +108,10 @@ for message in st.session_state.messages:
108
  st.markdown(message['content'])
109
 
110
  # Mensaje inicial del sistema si es un chat nuevo
111
- # Configuración inicial del chat
112
  if not st.session_state.messages:
113
  system_prompt = get_puv_system_prompt()
114
 
115
- # Mostrar la carátula inicial solo si no hay mensajes
116
  st.markdown("""
117
  <div style='text-align: center; padding: 1rem 0;'>
118
  <h1 style='font-size: 24px; margin-bottom: 0.5rem;'>💎 RoboCopy PUV Creator</h1>
@@ -123,7 +122,7 @@ if not st.session_state.messages:
123
  </div>
124
  """, unsafe_allow_html=True)
125
 
126
- # Mostrar los ejemplos solo si no hay mensajes
127
  ejemplos = [
128
  {"texto": "¿Cuál es la mejor fórmula para mi PUV? 🤔", "prompt": "Ayúdame a elegir la mejor fórmula para mi Propuesta de Valor Única"},
129
  {"texto": "¿Cómo hacer mi PUV más impactante? 💫", "prompt": "Dame consejos para hacer mi Propuesta de Valor más persuasiva y memorable"},
@@ -147,6 +146,31 @@ if not st.session_state.messages:
147
  # Enviar el system prompt como primer mensaje
148
  st.session_state.chat.send_message(system_prompt)
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  # Add system message to chat history
151
  st.session_state.messages.append(
152
  dict(
@@ -378,6 +402,12 @@ if prompt := st.chat_input('Describe tu producto/servicio y audiencia objetivo..
378
  if 'prompt' in st.session_state and st.session_state.prompt: # Verificamos que el prompt no esté vacío
379
  prompt = st.session_state.prompt
380
 
 
 
 
 
 
 
381
  # Mostrar el mensaje del usuario
382
  with st.chat_message('user', avatar=USER_AVATAR_ICON):
383
  st.markdown(prompt)
@@ -389,8 +419,8 @@ if 'prompt' in st.session_state and st.session_state.prompt: # Verificamos que
389
  'avatar': USER_AVATAR_ICON
390
  })
391
 
392
- # Procesar la respuesta del modelo solo si el prompt tiene contenido
393
- if prompt.strip(): # Verificación adicional después de eliminar espacios
394
  with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
395
  try:
396
  response = st.session_state.chat.send_message(prompt)
@@ -402,10 +432,18 @@ if 'prompt' in st.session_state and st.session_state.prompt: # Verificamos que
402
  'content': response.text,
403
  'avatar': AI_AVATAR_ICON
404
  })
 
 
 
 
 
 
 
 
 
 
405
  except ValueError as e:
406
  st.error("Error: El mensaje no puede estar vacío. Por favor, escribe algo.")
407
- else:
408
- st.warning("Por favor, ingresa un mensaje antes de enviar.")
409
 
410
  # Limpiar el prompt del estado de la sesión
411
  st.session_state.prompt = None
 
108
  st.markdown(message['content'])
109
 
110
  # Mensaje inicial del sistema si es un chat nuevo
 
111
  if not st.session_state.messages:
112
  system_prompt = get_puv_system_prompt()
113
 
114
+ # Mostrar la carátula inicial
115
  st.markdown("""
116
  <div style='text-align: center; padding: 1rem 0;'>
117
  <h1 style='font-size: 24px; margin-bottom: 0.5rem;'>💎 RoboCopy PUV Creator</h1>
 
122
  </div>
123
  """, unsafe_allow_html=True)
124
 
125
+ # Mostrar los ejemplos
126
  ejemplos = [
127
  {"texto": "¿Cuál es la mejor fórmula para mi PUV? 🤔", "prompt": "Ayúdame a elegir la mejor fórmula para mi Propuesta de Valor Única"},
128
  {"texto": "¿Cómo hacer mi PUV más impactante? 💫", "prompt": "Dame consejos para hacer mi Propuesta de Valor más persuasiva y memorable"},
 
146
  # Enviar el system prompt como primer mensaje
147
  st.session_state.chat.send_message(system_prompt)
148
 
149
+ # Solo añadir el mensaje inicial si no es un ejemplo
150
+ if not st.session_state.get('prompt'):
151
+ st.session_state.messages.append(
152
+ dict(
153
+ role=MODEL_ROLE,
154
+ content="""
155
+ Hola, soy RoboCopy tu asistente especializado en crear Propuestas de Valor Únicas.
156
+
157
+ Para ayudarte a crear PUVs efectivas, necesito conocer:
158
+
159
+ 1. ¿Qué producto o servicio ofreces?
160
+ 2. ¿A quién va dirigido? (describe tu público objetivo)
161
+ 3. ¿Qué fórmula prefieres usar? Puedo ofrecerte:
162
+ - Tradicional: Clara y directa
163
+ - Anti-tradicional: Innovadora y disruptiva
164
+ - Contrato Imposible: Audaz y sorprendente
165
+ - Reto Ridículo: Humorística y relatable
166
+ 4. ¿Cuántos ejemplos de PUVs necesitas?
167
+
168
+ ¿Empezamos con tu producto o servicio?
169
+ """,
170
+ avatar=AI_AVATAR_ICON,
171
+ )
172
+ )
173
+
174
  # Add system message to chat history
175
  st.session_state.messages.append(
176
  dict(
 
402
  if 'prompt' in st.session_state and st.session_state.prompt: # Verificamos que el prompt no esté vacío
403
  prompt = st.session_state.prompt
404
 
405
+ # Guardar el chat para después si es nuevo
406
+ if st.session_state.chat_id not in past_chats.keys():
407
+ temp_title = f'SesiónChat-{st.session_state.chat_id}'
408
+ past_chats[st.session_state.chat_id] = temp_title
409
+ joblib.dump(past_chats, 'data/past_chats_list')
410
+
411
  # Mostrar el mensaje del usuario
412
  with st.chat_message('user', avatar=USER_AVATAR_ICON):
413
  st.markdown(prompt)
 
419
  'avatar': USER_AVATAR_ICON
420
  })
421
 
422
+ # Procesar la respuesta del modelo
423
+ if prompt.strip():
424
  with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
425
  try:
426
  response = st.session_state.chat.send_message(prompt)
 
432
  'content': response.text,
433
  'avatar': AI_AVATAR_ICON
434
  })
435
+
436
+ # Guardar el historial actualizado
437
+ joblib.dump(
438
+ st.session_state.messages,
439
+ f'data/{st.session_state.chat_id}-st_messages',
440
+ )
441
+ joblib.dump(
442
+ st.session_state.gemini_history,
443
+ f'data/{st.session_state.chat_id}-gemini_messages',
444
+ )
445
  except ValueError as e:
446
  st.error("Error: El mensaje no puede estar vacío. Por favor, escribe algo.")
 
 
447
 
448
  # Limpiar el prompt del estado de la sesión
449
  st.session_state.prompt = None