Spaces:
Running
Running
Upload 10 files
Browse files
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
|
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
|
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
|
393 |
-
if prompt.strip():
|
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
|