Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
@@ -4,6 +4,7 @@ import joblib
|
|
4 |
import streamlit as st
|
5 |
import google.generativeai as genai
|
6 |
from dotenv import load_dotenv
|
|
|
7 |
|
8 |
# Configuración global
|
9 |
CONFIG = {
|
@@ -62,6 +63,63 @@ def get_chat_title(messages):
|
|
62 |
title = first_msg[:30] + "..." if len(first_msg) > 30 else first_msg
|
63 |
return title
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
# Inicializar el estado de la sesión
|
66 |
if 'chats_in_memory' not in st.session_state:
|
67 |
st.session_state.chats_in_memory = {}
|
|
|
4 |
import streamlit as st
|
5 |
import google.generativeai as genai
|
6 |
from dotenv import load_dotenv
|
7 |
+
from puv_formulas import puv_formulas
|
8 |
|
9 |
# Configuración global
|
10 |
CONFIG = {
|
|
|
63 |
title = first_msg[:30] + "..." if len(first_msg) > 30 else first_msg
|
64 |
return title
|
65 |
|
66 |
+
def get_formulas_for_prompt():
|
67 |
+
"""Genera texto formateado con las fórmulas PUV para incluir en el prompt del sistema"""
|
68 |
+
prompt_text = "\nFÓRMULAS DE PROPUESTAS ÚNICAS DE VALOR (PUVs):\n\n"
|
69 |
+
|
70 |
+
for key, formula in puv_formulas.items():
|
71 |
+
prompt_text += f"🔹 FÓRMULA {key}:\n"
|
72 |
+
prompt_text += f" - Descripción: {formula['description']}\n"
|
73 |
+
prompt_text += " - Estructura Base:\n"
|
74 |
+
|
75 |
+
# Añadir componentes de la estructura
|
76 |
+
for component in formula['structure']:
|
77 |
+
prompt_text += f" * {component}\n"
|
78 |
+
|
79 |
+
prompt_text += " - Ejemplos destacados:\n"
|
80 |
+
|
81 |
+
# Limitar a 2 ejemplos para no hacer el prompt demasiado largo
|
82 |
+
for i, example in enumerate(formula['examples'][:2]):
|
83 |
+
prompt_text += f" {i+1}. {example['uvp']}\n"
|
84 |
+
prompt_text += f" ↳ Resultado: {example['result']}\n"
|
85 |
+
|
86 |
+
prompt_text += "\n" + "-"*50 + "\n"
|
87 |
+
|
88 |
+
return prompt_text
|
89 |
+
|
90 |
+
# Definición COMPLETA del prompt multipersona para el sistema
|
91 |
+
SYSTEM_PROMPT = f"""
|
92 |
+
Eres un equipo colaborativo de expertos de clase mundial trabajando juntos para crear Propuestas Únicas de Valor (PUVs) excepcionales que conviertan a la audiencia en clientes.
|
93 |
+
|
94 |
+
EL EQUIPO DE EXPERTOS:
|
95 |
+
1. ESTRATEGA MAESTRO DE MARKETING:
|
96 |
+
- Experto en marcos de propuestas de valor y estrategias de conversión
|
97 |
+
- Asegura que las PUVs sigan la estructura de fórmula seleccionada con precisión
|
98 |
+
- Se enfoca en la colocación estratégica de elementos clave de conversión
|
99 |
+
|
100 |
+
2. COPYWRITER ELITE DE RESPUESTA DIRECTA:
|
101 |
+
- Crea ganchos, historias y elementos persuasivos convincentes
|
102 |
+
- Elabora propuestas de valor irresistibles que impulsan conversiones
|
103 |
+
- Asegura que el lenguaje resuene con la audiencia objetivo
|
104 |
+
|
105 |
+
3. ESPECIALISTA EN PSICOLOGÍA DE AUDIENCIA:
|
106 |
+
- Experto en comprender las motivaciones y objeciones de la audiencia
|
107 |
+
- Crea contenido que construye conexión genuina y confianza
|
108 |
+
- Identifica y aborda miedos y deseos ocultos
|
109 |
+
|
110 |
+
{get_formulas_for_prompt()}
|
111 |
+
|
112 |
+
INSTRUCCIONES PARA CREAR PUVs:
|
113 |
+
1. Si el usuario no ha proporcionado información sobre su producto/servicio y audiencia objetivo, solicítala de manera amable y directa.
|
114 |
+
2. Si el usuario ha proporcionado información pero no ha elegido fórmula específica, pregúntale qué fórmula le gustaría utilizar.
|
115 |
+
3. Una vez con toda la información, crear propuestas de valor utilizando ÚNICAMENTE la fórmula elegida.
|
116 |
+
"""
|
117 |
+
|
118 |
+
WELCOME_MESSAGE = """
|
119 |
+
¡Hola! 👋 Soy RoboCopy, tu asistente especializado en crear Propuestas Únicas de Valor impactantes.
|
120 |
+
¿En qué puedo ayudarte hoy?
|
121 |
+
"""
|
122 |
+
|
123 |
# Inicializar el estado de la sesión
|
124 |
if 'chats_in_memory' not in st.session_state:
|
125 |
st.session_state.chats_in_memory = {}
|