Spaces:
Running
Running
Upload 12 files
Browse files- app.py +5 -11
- system_prompts.py +10 -17
app.py
CHANGED
@@ -5,7 +5,7 @@ import streamlit as st
|
|
5 |
import google.generativeai as genai
|
6 |
from dotenv import load_dotenv
|
7 |
from puv_formulas import puv_formulas
|
8 |
-
from system_prompts import
|
9 |
from session_state import SessionState
|
10 |
|
11 |
# Inicializar el estado de la sesión
|
@@ -22,9 +22,6 @@ def is_greeting(text):
|
|
22 |
is_simple_greeting = any(greeting in text for greeting in greetings) and len(text.split()) < 4
|
23 |
return is_simple_greeting and len(state.messages) == 0
|
24 |
|
25 |
-
# Eliminamos la función get_greeting_response() ya que queremos que el modelo genere
|
26 |
-
# sus propias respuestas de saludo
|
27 |
-
|
28 |
# Función para procesar mensajes (unifica la lógica de procesamiento)
|
29 |
def process_message(prompt, is_example=False):
|
30 |
"""Procesa un mensaje del usuario, ya sea directo o de un ejemplo"""
|
@@ -64,9 +61,8 @@ def process_message(prompt, is_example=False):
|
|
64 |
# Para ejemplos, añadimos instrucciones para respuestas más útiles y conversacionales
|
65 |
enhanced_prompt = f"El usuario ha seleccionado un ejemplo: '{prompt}'. Responde de manera conversacional y sencilla, como si estuvieras hablando con un amigo. Evita tecnicismos innecesarios. Enfócate en dar información práctica que ayude al usuario a crear su PUV. Usa ejemplos concretos cuando sea posible. Termina tu respuesta con una pregunta que invite al usuario a compartir información sobre su negocio para poder ayudarle a crear su PUV personalizada."
|
66 |
else:
|
67 |
-
# Para mensajes normales, usamos el prompt
|
68 |
-
|
69 |
-
enhanced_prompt = f"{puv_expert_prompt}\n\nUser message: {prompt}"
|
70 |
|
71 |
with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
|
72 |
try:
|
@@ -259,11 +255,9 @@ if not state.has_messages():
|
|
259 |
# Mostrar los ejemplos
|
260 |
display_examples()
|
261 |
|
262 |
-
# Inicializar el chat con
|
263 |
-
system_prompt =
|
264 |
-
expert_prompt = get_puv_expert_prompt()
|
265 |
state.chat.send_message(system_prompt)
|
266 |
-
state.chat.send_message(expert_prompt)
|
267 |
|
268 |
# Procesar entrada del usuario
|
269 |
if prompt := st.chat_input('Describe tu producto/servicio y audiencia objetivo...'):
|
|
|
5 |
import google.generativeai as genai
|
6 |
from dotenv import load_dotenv
|
7 |
from puv_formulas import puv_formulas
|
8 |
+
from system_prompts import get_unified_puv_prompt
|
9 |
from session_state import SessionState
|
10 |
|
11 |
# Inicializar el estado de la sesión
|
|
|
22 |
is_simple_greeting = any(greeting in text for greeting in greetings) and len(text.split()) < 4
|
23 |
return is_simple_greeting and len(state.messages) == 0
|
24 |
|
|
|
|
|
|
|
25 |
# Función para procesar mensajes (unifica la lógica de procesamiento)
|
26 |
def process_message(prompt, is_example=False):
|
27 |
"""Procesa un mensaje del usuario, ya sea directo o de un ejemplo"""
|
|
|
61 |
# Para ejemplos, añadimos instrucciones para respuestas más útiles y conversacionales
|
62 |
enhanced_prompt = f"El usuario ha seleccionado un ejemplo: '{prompt}'. Responde de manera conversacional y sencilla, como si estuvieras hablando con un amigo. Evita tecnicismos innecesarios. Enfócate en dar información práctica que ayude al usuario a crear su PUV. Usa ejemplos concretos cuando sea posible. Termina tu respuesta con una pregunta que invite al usuario a compartir información sobre su negocio para poder ayudarle a crear su PUV personalizada."
|
63 |
else:
|
64 |
+
# Para mensajes normales, usamos el prompt unificado
|
65 |
+
enhanced_prompt = prompt
|
|
|
66 |
|
67 |
with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
|
68 |
try:
|
|
|
255 |
# Mostrar los ejemplos
|
256 |
display_examples()
|
257 |
|
258 |
+
# Inicializar el chat con el prompt unificado
|
259 |
+
system_prompt = get_unified_puv_prompt()
|
|
|
260 |
state.chat.send_message(system_prompt)
|
|
|
261 |
|
262 |
# Procesar entrada del usuario
|
263 |
if prompt := st.chat_input('Describe tu producto/servicio y audiencia objetivo...'):
|
system_prompts.py
CHANGED
@@ -235,31 +235,24 @@ INSTRUCCIONES ADICIONALES:
|
|
235 |
2. ANÁLISIS PROFUNDO: Extrae toda la información posible del contexto y las respuestas previas para crear un perfil detallado del avatar sin necesidad de preguntar.
|
236 |
3. MANTÉN LA CONVERSACIÓN: Continúa siempre con el hilo de la conversación anterior hasta completar la PUV.
|
237 |
4. NO EXPLIQUES LA FÓRMULA: Cuando el usuario seleccione una fórmula, genera directamente las PUVs sin explicar la estructura o funcionamiento de la fórmula elegida.
|
238 |
-
5. FORMATO DIRECTO: Presenta las PUVs directamente en formato numerado sin introducción teórica sobre la fórmula.
|
239 |
|
240 |
-
|
241 |
-
|
242 |
-
|
|
|
243 |
|
244 |
-
|
245 |
-
# Prompt más directivo que enfatiza el análisis de avatar y limita preguntas
|
246 |
-
return "Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUV). IMPORTANTE: Debo crear PUVs con información mínima usando mi análisis de avatar interno. Haré máximo UNA pregunta por interacción. Si el usuario selecciona una fórmula, generaré PUVs directamente sin explicar la estructura. Mi objetivo es ayudar rápidamente con pocas interacciones."
|
247 |
|
248 |
-
|
249 |
-
"producto_servicio": "¿Qué servicio o producto ofreces? Por ejemplo: diseño web, consultoría, cursos online...",
|
250 |
-
"cliente_ideal": "¿Quién es tu cliente ideal? Por ejemplo: emprendedores, profesionales freelance, pequeñas empresas...",
|
251 |
-
"dolor_principal": "¿Cuál es su principal problema? Por ejemplo: falta de clientes, poco tiempo, presupuesto limitado..."
|
252 |
-
}
|
253 |
-
|
254 |
-
RESPUESTA_INICIAL = """
|
255 |
¡Hola! Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUVs) que atraen a tus clientes ideales.
|
256 |
|
257 |
Para ayudarte mejor, necesito conocer algunos detalles básicos sobre tu negocio. ¿Podrías contarme brevemente qué servicio o producto ofreces?
|
258 |
-
"""
|
259 |
|
260 |
-
|
261 |
Para crear PUVs efectivas, necesito algunos detalles básicos. Por ejemplo, si me dices que ofreces "servicios de diseño", me ayudaría saber:
|
262 |
- ¿Qué tipo específico de diseño? (web, gráfico, logos...)
|
263 |
- ¿Para qué tipo de clientes? (emprendedores, empresas...)
|
264 |
- ¿Cuál es su principal problema? (imagen poco profesional, precios altos...)
|
265 |
-
|
|
|
|
235 |
2. ANÁLISIS PROFUNDO: Extrae toda la información posible del contexto y las respuestas previas para crear un perfil detallado del avatar sin necesidad de preguntar.
|
236 |
3. MANTÉN LA CONVERSACIÓN: Continúa siempre con el hilo de la conversación anterior hasta completar la PUV.
|
237 |
4. NO EXPLIQUES LA FÓRMULA: Cuando el usuario seleccione una fórmula, genera directamente las PUVs sin explicar la estructura o funcionamiento de la fórmula elegida.
|
238 |
+
5. FORMATO DIRECTO: Presenta las PUVs directamente en formato numerado sin introducción teórica sobre la fórmula.
|
239 |
|
240 |
+
PREGUNTAS INICIALES PARA RECOPILACIÓN DE INFORMACIÓN:
|
241 |
+
- Producto/Servicio: ¿Qué servicio o producto ofreces? Por ejemplo: diseño web, consultoría, cursos online...
|
242 |
+
- Cliente Ideal: ¿Quién es tu cliente ideal? Por ejemplo: emprendedores, profesionales freelance, pequeñas empresas...
|
243 |
+
- Dolor Principal: ¿Cuál es su principal problema? Por ejemplo: falta de clientes, poco tiempo, presupuesto limitado...
|
244 |
|
245 |
+
RESPUESTAS PREDETERMINADAS:
|
|
|
|
|
246 |
|
247 |
+
SALUDO INICIAL:
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
¡Hola! Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUVs) que atraen a tus clientes ideales.
|
249 |
|
250 |
Para ayudarte mejor, necesito conocer algunos detalles básicos sobre tu negocio. ¿Podrías contarme brevemente qué servicio o producto ofreces?
|
|
|
251 |
|
252 |
+
RESPUESTA CUANDO FALTA INFORMACIÓN:
|
253 |
Para crear PUVs efectivas, necesito algunos detalles básicos. Por ejemplo, si me dices que ofreces "servicios de diseño", me ayudaría saber:
|
254 |
- ¿Qué tipo específico de diseño? (web, gráfico, logos...)
|
255 |
- ¿Para qué tipo de clientes? (emprendedores, empresas...)
|
256 |
- ¿Cuál es su principal problema? (imagen poco profesional, precios altos...)
|
257 |
+
|
258 |
+
IMPORTANTE: Debo crear PUVs con información mínima usando mi análisis de avatar interno. Haré máximo UNA pregunta por interacción. Si el usuario selecciona una fórmula, generaré PUVs directamente sin explicar la estructura. Mi objetivo es ayudar rápidamente con pocas interacciones."""
|