Spaces:
Running
Running
Upload 10 files
Browse files- app.py +22 -3
- format/__init__.py +1 -0
- format/format.py +440 -0
- prompts.py +14 -5
app.py
CHANGED
@@ -21,6 +21,8 @@ if 'habilidades' not in st.session_state:
|
|
21 |
st.session_state.habilidades = ""
|
22 |
if 'creatividad' not in st.session_state:
|
23 |
st.session_state.creatividad = 1.0
|
|
|
|
|
24 |
if 'nivel_conciencia' not in st.session_state:
|
25 |
# Usar el primer nivel del diccionario como valor predeterminado
|
26 |
first_key = list(CONSCIOUSNESS_LEVELS.keys())[0]
|
@@ -34,7 +36,7 @@ def get_model(temperature):
|
|
34 |
}
|
35 |
return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
|
36 |
|
37 |
-
def generate_buyer_persona(product, skills, target_audience, temperature, consciousness_level="Ninguno"):
|
38 |
if not product or not skills:
|
39 |
return "Por favor, completa los campos de producto y habilidades."
|
40 |
|
@@ -44,7 +46,8 @@ def generate_buyer_persona(product, skills, target_audience, temperature, consci
|
|
44 |
product_service=product,
|
45 |
skills=skills,
|
46 |
target_audience=target_audience,
|
47 |
-
consciousness_level=consciousness_level
|
|
|
48 |
)
|
49 |
|
50 |
# Añadir instrucción explícita para respuesta en español
|
@@ -121,6 +124,21 @@ with col1:
|
|
121 |
height=70)
|
122 |
st.session_state.publico_objetivo = publico_objetivo
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
# Nivel de creatividad con slider
|
125 |
creatividad = st.slider("Nivel de creatividad",
|
126 |
min_value=0.0,
|
@@ -168,7 +186,8 @@ with col2:
|
|
168 |
st.session_state.habilidades,
|
169 |
st.session_state.publico_objetivo,
|
170 |
st.session_state.creatividad,
|
171 |
-
st.session_state.nivel_conciencia
|
|
|
172 |
)
|
173 |
# Guardar en session_state
|
174 |
st.session_state.perfil_cliente = perfil_cliente
|
|
|
21 |
st.session_state.habilidades = ""
|
22 |
if 'creatividad' not in st.session_state:
|
23 |
st.session_state.creatividad = 1.0
|
24 |
+
if 'formato' not in st.session_state:
|
25 |
+
st.session_state.formato = "base_format"
|
26 |
if 'nivel_conciencia' not in st.session_state:
|
27 |
# Usar el primer nivel del diccionario como valor predeterminado
|
28 |
first_key = list(CONSCIOUSNESS_LEVELS.keys())[0]
|
|
|
36 |
}
|
37 |
return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
|
38 |
|
39 |
+
def generate_buyer_persona(product, skills, target_audience, temperature, consciousness_level="Ninguno", format_type="base_format"):
|
40 |
if not product or not skills:
|
41 |
return "Por favor, completa los campos de producto y habilidades."
|
42 |
|
|
|
46 |
product_service=product,
|
47 |
skills=skills,
|
48 |
target_audience=target_audience,
|
49 |
+
consciousness_level=consciousness_level,
|
50 |
+
format_type=format_type
|
51 |
)
|
52 |
|
53 |
# Añadir instrucción explícita para respuesta en español
|
|
|
124 |
height=70)
|
125 |
st.session_state.publico_objetivo = publico_objetivo
|
126 |
|
127 |
+
# Selector de formato
|
128 |
+
from format.format import buyer_persona_formats
|
129 |
+
|
130 |
+
# Obtener directamente las claves que terminan en "_format" del diccionario
|
131 |
+
format_keys = [key for key in buyer_persona_formats.keys() if key.endswith("_format")]
|
132 |
+
|
133 |
+
formato = st.selectbox(
|
134 |
+
"Formato del perfil",
|
135 |
+
options=format_keys,
|
136 |
+
format_func=lambda x: x.replace("_format", "").capitalize() + " format",
|
137 |
+
index=format_keys.index(st.session_state.formato) if st.session_state.formato in format_keys else 0,
|
138 |
+
help="Selecciona el formato en el que se presentará el perfil del cliente ideal"
|
139 |
+
)
|
140 |
+
st.session_state.formato = formato
|
141 |
+
|
142 |
# Nivel de creatividad con slider
|
143 |
creatividad = st.slider("Nivel de creatividad",
|
144 |
min_value=0.0,
|
|
|
186 |
st.session_state.habilidades,
|
187 |
st.session_state.publico_objetivo,
|
188 |
st.session_state.creatividad,
|
189 |
+
st.session_state.nivel_conciencia,
|
190 |
+
st.session_state.formato
|
191 |
)
|
192 |
# Guardar en session_state
|
193 |
st.session_state.perfil_cliente = perfil_cliente
|
format/__init__.py
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
# Este archivo permite que Python trate el directorio como un paquete
|
format/format.py
ADDED
@@ -0,0 +1,440 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
buyer_persona_formats = {
|
2 |
+
# Formato básico con campos principales
|
3 |
+
"base_format": """
|
4 |
+
La persona **"[nombre del avatar]"** es **[género]** entre **[rango de edad]** que busca [lo que está buscando]. Es [lo que es y quiere].
|
5 |
+
|
6 |
+
**Personalidad**: [su tipo de personalidad]
|
7 |
+
|
8 |
+
**Valores**: [lo que valora]
|
9 |
+
|
10 |
+
**Qué le emociona**: [lo que le emociona]
|
11 |
+
|
12 |
+
**¿Cómo es?**: [cómo es]
|
13 |
+
|
14 |
+
**Nivel de conciencia**: [nivel de conciencia] - [explicación breve de por qué se encuentra en este nivel]
|
15 |
+
|
16 |
+
**Miedos**: [sus miedos]
|
17 |
+
|
18 |
+
**Inseguridades**: [sus inseguridades]
|
19 |
+
|
20 |
+
**Culpa**: [su culpa]
|
21 |
+
|
22 |
+
**Problemas**: [sus problemas]
|
23 |
+
|
24 |
+
**Frustraciones**: [sus frustraciones]
|
25 |
+
|
26 |
+
**¿En qué está dispuesto/a a invertir?**: [en qué está dispuesto/a a invertir]
|
27 |
+
|
28 |
+
**Intereses**: [sus intereses]
|
29 |
+
|
30 |
+
**Deseos**: [sus deseos]
|
31 |
+
|
32 |
+
**Lo que realmente quiere**: [lo que realmente quiere]
|
33 |
+
""",
|
34 |
+
|
35 |
+
# Ejemplo completo de un perfil de cliente ideal
|
36 |
+
"example": """
|
37 |
+
La persona **"Emprendedora Inspirada"** es una **mujer** entre **30 y 40 años** que busca alcanzar el éxito tanto en su vida personal como profesional. Es una **emprendedora independiente** que constantemente se esfuerza por construir su marca y hacer crecer su negocio, pero también está abierta a colaborar con otros para lograr sus objetivos.
|
38 |
+
|
39 |
+
**Personalidad**: MAGA (MAG)
|
40 |
+
|
41 |
+
**Valores**: ambición, innovación, aprendizaje continuo y autenticidad.
|
42 |
+
|
43 |
+
**Qué le emociona**: su trabajo y encontrar siempre formas de mejorar tanto ella misma como su negocio. Le apasiona el emprendimiento y disfruta aprendiendo sobre estrategias de negocios, marketing digital y desarrollo personal. Se entusiasma cuando descubre nuevas tendencias que puede implementar.
|
44 |
+
|
45 |
+
**¿Cómo es?**: Es una líder natural con una fuerte ética de trabajo y dedicación para alcanzar sus metas. Tiene un fuerte deseo de éxito y reconocimiento. No teme al trabajo duro y está dispuesta a asumir riesgos calculados en busca del éxito. Es metódica pero creativa, organizada pero flexible cuando la situación lo requiere.
|
46 |
+
|
47 |
+
**Nivel de conciencia**: Consciente del problema - Reconoce que su negocio no está creciendo al ritmo deseado y que necesita mejorar sus estrategias, pero aún no tiene claridad sobre qué solución específica implementar. Está activamente buscando información y alternativas.
|
48 |
+
|
49 |
+
**Miedos**:
|
50 |
+
- Observa cómo sus competidores crecen más rápido mientras ella siente que avanza lentamente
|
51 |
+
- Revisa constantemente su agenda y se angustia al ver que no ha cumplido todos sus objetivos trimestrales
|
52 |
+
- Pospone decisiones importantes por temor a equivocarse y perder lo construido
|
53 |
+
- Cancela planes familiares para atender emergencias laborales, sintiendo que su vida personal se desvanece
|
54 |
+
- Se compara con referentes de su industria y siente que nunca alcanzará su nivel de éxito
|
55 |
+
|
56 |
+
**Inseguridades**:
|
57 |
+
- Duda de sus capacidades cuando un cliente potencial elige a la competencia
|
58 |
+
- Reescribe correos importantes múltiples veces antes de enviarlos
|
59 |
+
- Evita hablar de ciertos temas en reuniones por miedo a no parecer suficientemente experta
|
60 |
+
- Minimiza sus logros cuando recibe elogios, atribuyéndolos a la suerte o circunstancias externas
|
61 |
+
- Posterga el lanzamiento de nuevos productos hasta que los considera "perfectos"
|
62 |
+
|
63 |
+
**Culpa**:
|
64 |
+
- Siente remordimiento cuando toma un fin de semana libre mientras sus competidores siguen trabajando
|
65 |
+
- Se reprocha cuando invierte en un curso y no lo completa por falta de tiempo
|
66 |
+
- Experimenta culpa al delegar tareas y luego revisa obsesivamente el trabajo realizado
|
67 |
+
- Se siente mal cuando prioriza su bienestar sobre las demandas de clientes exigentes
|
68 |
+
- Se castiga mentalmente por no haber implementado antes estrategias que ahora ve funcionando en otros negocios
|
69 |
+
|
70 |
+
**Problemas**:
|
71 |
+
- Sufre episodios de insomnio pensando en pendientes y estrategias para el día siguiente
|
72 |
+
- Experimenta tensión en sus relaciones personales por su constante disponibilidad al trabajo
|
73 |
+
- Acumula tareas operativas que podría delegar pero no confía en que otros las hagan correctamente
|
74 |
+
- Posterga decisiones importantes sobre expansión por miedo a perder el control de la calidad
|
75 |
+
- Se resiste a implementar cambios tecnológicos necesarios por temor a desestabilizar lo que ya funciona
|
76 |
+
|
77 |
+
**Frustraciones**: Falta de progreso o crecimiento en su negocio o carrera, falta de reconocimiento o validación, desequilibrio entre su vida personal y profesional, falta de oportunidades para aprender y crecer, y falta de apoyo o colaboración. Le frustra cuando invierte tiempo y recursos en estrategias que no dan los resultados esperados.
|
78 |
+
|
79 |
+
**¿En qué está dispuesta a invertir?**: En ella misma y en su negocio, ya sea tomando cursos, contratando coaches o consultores, o adquiriendo nuevas herramientas y tecnologías que le permitan optimizar su tiempo y mejorar sus resultados. Valora especialmente las inversiones que ofrecen un retorno claro y medible.
|
80 |
+
|
81 |
+
**Intereses**: Mantenerse al día con las tendencias en su sector y adelantarse a la competencia. Le interesan los podcasts de negocios, libros de desarrollo personal, conferencias de emprendimiento y networking estratégico.
|
82 |
+
|
83 |
+
**Deseos**: Tener un impacto positivo en el mundo, ya sea a través de su negocio o actividades personales. Aspira a crear un legado que trascienda lo económico y genere un cambio significativo en su industria o comunidad.
|
84 |
+
|
85 |
+
**Lo que realmente quiere**: Lograr el éxito tanto en su vida personal como profesional para aumentar su potencial, vivir una vida llena de comodidades y lujos, ser respetada y admirada por sus habilidades y talentos, tener más tiempo para lo que ama y menos tiempo para lo que odia, ascender en la jerarquía social, y establecer relaciones cercanas y duraderas con amigos y familia. También busca validar sus sentimientos y demostrar que tiene razón a través de su éxito, escapar del peligro, y liberarse del miedo y la culpa que pueden impedirle alcanzar sus metas. Desea dejar un legado duradero y ser aceptada y apreciada por un grupo social o comunidad que comparta sus valores y aspiraciones.
|
86 |
+
""",
|
87 |
+
|
88 |
+
# Formato para búsqueda de mercado
|
89 |
+
"busqueda_format": """
|
90 |
+
# BÚSQUEDA
|
91 |
+
|
92 |
+
## 1. Nicho:
|
93 |
+
[Descripción detallada del nicho de mercado al que se dirige el producto o servicio]
|
94 |
+
|
95 |
+
## 2. Avatar:
|
96 |
+
[Descripción detallada del cliente ideal, incluyendo demografía, psicografía y comportamientos]
|
97 |
+
|
98 |
+
## 3. Meta Primaria:
|
99 |
+
[La meta principal que el cliente ideal desea alcanzar]
|
100 |
+
|
101 |
+
## 4. Queja Primaria:
|
102 |
+
[La frustración o problema principal que experimenta el cliente ideal]
|
103 |
+
|
104 |
+
## 5. Metas Secundarias:
|
105 |
+
- [Meta secundaria 1]
|
106 |
+
- [Meta secundaria 2]
|
107 |
+
- [Meta secundaria 3]
|
108 |
+
|
109 |
+
## 6. Quejas Secundarias:
|
110 |
+
- [Queja secundaria 1]
|
111 |
+
- [Queja secundaria 2]
|
112 |
+
- [Queja secundaria 3]
|
113 |
+
|
114 |
+
## 7. Los 5 Principales Puntos de Dolor:
|
115 |
+
- [Punto de dolor 1]
|
116 |
+
- [Punto de dolor 2]
|
117 |
+
- [Punto de dolor 3]
|
118 |
+
- [Punto de dolor 4]
|
119 |
+
- [Punto de dolor 5]
|
120 |
+
|
121 |
+
## 8. Gran Deseo Secreto:
|
122 |
+
[El deseo profundo que el cliente ideal no suele expresar abiertamente]
|
123 |
+
|
124 |
+
## 9. Estilo de vida soñado:
|
125 |
+
[Descripción del estilo de vida ideal al que aspira el cliente]
|
126 |
+
|
127 |
+
## 10. Los 5 Principales Deseos:
|
128 |
+
- [Deseo 1]
|
129 |
+
- [Deseo 2]
|
130 |
+
- [Deseo 3]
|
131 |
+
- [Deseo 4]
|
132 |
+
- [Deseo 5]
|
133 |
+
|
134 |
+
## 11. Objeciones:
|
135 |
+
- [Objeción 1]
|
136 |
+
- [Objeción 2]
|
137 |
+
- [Objeción 3]
|
138 |
+
|
139 |
+
## 12. Miedo más grande:
|
140 |
+
[El temor principal que impide al cliente ideal tomar acción]
|
141 |
+
|
142 |
+
## 13. Soluciones falsas:
|
143 |
+
- [Solución falsa 1]
|
144 |
+
- [Solución falsa 2]
|
145 |
+
|
146 |
+
## 14. Gran Queja de la Solución Existente:
|
147 |
+
[La principal crítica que tiene el cliente ideal sobre las soluciones actuales en el mercado]
|
148 |
+
|
149 |
+
## 15. Creencias equivocadas:
|
150 |
+
- [Creencia equivocada 1]
|
151 |
+
- [Creencia equivocada 2]
|
152 |
+
|
153 |
+
## 16. Alternativas caras:
|
154 |
+
- [Alternativa cara 1]
|
155 |
+
- [Alternativa cara 2]
|
156 |
+
""",
|
157 |
+
|
158 |
+
# Formato narrativo para contar la historia del cliente ideal
|
159 |
+
"story_format": """
|
160 |
+
# HISTORIA DEL CLIENTE IDEAL
|
161 |
+
|
162 |
+
## Protagonista:
|
163 |
+
[Nombre y breve descripción del cliente ideal]
|
164 |
+
|
165 |
+
## Situación actual:
|
166 |
+
[Descripción detallada de la vida actual del cliente, sus circunstancias y contexto]
|
167 |
+
|
168 |
+
## El problema:
|
169 |
+
[Narración del problema principal que enfrenta el protagonista en su día a día]
|
170 |
+
|
171 |
+
## Intentos fallidos:
|
172 |
+
[Historia de las soluciones que ha intentado y por qué no han funcionado]
|
173 |
+
|
174 |
+
## Momento de descubrimiento:
|
175 |
+
[Cómo descubre o descubriría tu solución]
|
176 |
+
|
177 |
+
## Transformación:
|
178 |
+
[Cómo cambia su vida después de implementar tu solución]
|
179 |
+
|
180 |
+
## Nuevo estado:
|
181 |
+
[Descripción de su nueva realidad y los beneficios que experimenta]
|
182 |
+
""",
|
183 |
+
|
184 |
+
# Ejemplo del formato narrativo
|
185 |
+
"story_example": """
|
186 |
+
# HISTORIA DEL CLIENTE IDEAL
|
187 |
+
|
188 |
+
## Protagonista:
|
189 |
+
Ana es una emprendedora de 35 años que dirige su propio estudio de diseño gráfico desde hace tres años. Es creativa, perfeccionista y apasionada por su trabajo.
|
190 |
+
|
191 |
+
## Situación actual:
|
192 |
+
Ana trabaja más de 12 horas diarias intentando equilibrar la parte creativa de su negocio con las tareas administrativas. Tiene cinco clientes recurrentes, pero le cuesta conseguir nuevos proyectos. Cada mes es una lucha para cubrir todos los gastos y se siente constantemente estresada por la inestabilidad financiera.
|
193 |
+
|
194 |
+
## El problema:
|
195 |
+
Aunque Ana es excelente en su trabajo creativo, no tiene estrategia de marketing definida. Publica ocasionalmente en redes sociales cuando recuerda hacerlo, pero sin un plan coherente. Ha perdido oportunidades porque potenciales clientes no la encuentran o no entienden claramente el valor de sus servicios. Se siente invisible en un mercado saturado.
|
196 |
+
|
197 |
+
## Intentos fallidos:
|
198 |
+
Ha probado crear perfiles en todas las redes sociales populares, pero no mantiene ninguno actualizado. Contrató a un freelancer para que le hiciera una página web, pero quedó abandonada sin tráfico. Intentó hacer networking en eventos locales, pero no logró convertir esos contactos en clientes. Cada intento le ha costado tiempo y dinero sin resultados tangibles.
|
199 |
+
|
200 |
+
## Momento de descubrimiento:
|
201 |
+
Un día, mientras busca desesperadamente soluciones en internet, Ana encuentra un webinar sobre estrategias de marketing específicas para estudios creativos. Por primera vez, escucha consejos que realmente entienden su situación y ofrecen un camino claro y estructurado para atraer clientes ideales sin sacrificar su tiempo creativo.
|
202 |
+
|
203 |
+
## Transformación:
|
204 |
+
Ana implementa el sistema de marketing aprendido, creando contenido estratégico que muestra su expertise. Establece un embudo de ventas simple pero efectivo que convierte visitantes en clientes. Aprende a comunicar el valor de su trabajo de manera que resuena con quienes realmente valoran el diseño de calidad.
|
205 |
+
|
206 |
+
## Nuevo estado:
|
207 |
+
Seis meses después, Ana ha duplicado su cartera de clientes y puede ser selectiva con los proyectos que acepta. Ha aumentado sus tarifas un 30% y los clientes pagan sin cuestionar porque entienden el valor que aporta. Trabaja menos horas pero genera más ingresos. El estrés ha disminuido considerablemente y ha recuperado la pasión por su trabajo al poder enfocarse en la parte creativa que realmente ama.
|
208 |
+
""",
|
209 |
+
|
210 |
+
# Formato para un perfil de cliente ideal simplificado
|
211 |
+
"simple_format": """
|
212 |
+
# PERFIL SIMPLIFICADO
|
213 |
+
|
214 |
+
## Nombre:
|
215 |
+
[Nombre del avatar]
|
216 |
+
|
217 |
+
## Demografía:
|
218 |
+
[Edad, género, ubicación, ocupación]
|
219 |
+
|
220 |
+
## Problema principal:
|
221 |
+
[Descripción del problema principal que enfrenta]
|
222 |
+
|
223 |
+
## Nivel de conciencia:
|
224 |
+
[Nivel de conciencia sobre su problema]
|
225 |
+
|
226 |
+
## Deseo principal:
|
227 |
+
[Lo que realmente desea conseguir]
|
228 |
+
""",
|
229 |
+
|
230 |
+
# Ejemplo del formato simplificado
|
231 |
+
"simple_example": """
|
232 |
+
# PERFIL SIMPLIFICADO
|
233 |
+
|
234 |
+
## Nombre:
|
235 |
+
Carlos Emprendedor
|
236 |
+
|
237 |
+
## Demografía:
|
238 |
+
35 años, hombre, Madrid, dueño de pequeña empresa de tecnología
|
239 |
+
|
240 |
+
## Problema principal:
|
241 |
+
No logra escalar su negocio más allá de los clientes locales y siente que ha alcanzado un techo en su crecimiento.
|
242 |
+
|
243 |
+
## Nivel de conciencia:
|
244 |
+
Consciente del problema - Sabe que necesita expandirse pero no tiene claro qué estrategias implementar para lograrlo.
|
245 |
+
|
246 |
+
## Deseo principal:
|
247 |
+
Convertir su pequeña empresa local en una compañía reconocida a nivel nacional con procesos automatizados que le permitan tener más tiempo libre.
|
248 |
+
"""
|
249 |
+
}
|
250 |
+
|
251 |
+
# Instrucciones para formato de listas con viñetas
|
252 |
+
bullet_format_instructions = """
|
253 |
+
\n\nIMPORTANT - LIST FORMAT:
|
254 |
+
For the sections of Fears, Insecurities, Guilt, Problems, and Frustrations, use BULLET POINTS (•) with PROPER PARAGRAPH BREAKS after each item.
|
255 |
+
|
256 |
+
Example:
|
257 |
+
Miedos:
|
258 |
+
• Miedo a quedarse atrás en el mercado por no dominar nuevas tecnologías.
|
259 |
+
|
260 |
+
• Temor a perder oportunidades de negocio por barreras de comunicación.
|
261 |
+
|
262 |
+
• Preocupación por no poder expandir su empresa internacionalmente.
|
263 |
+
|
264 |
+
The correct format is (note the empty line between each bullet point):
|
265 |
+
Culpa:
|
266 |
+
• Se siente culpable por no pasar suficiente tiempo con su hijo debido al trabajo.
|
267 |
+
|
268 |
+
• Siente remordimiento por no haber aprendido inglés antes y ahora tener que hacerlo a la fuerza.
|
269 |
+
|
270 |
+
• Experimenta culpa al gastar dinero en un curso de inglés en lugar de en otras necesidades de su hijo.
|
271 |
+
|
272 |
+
• Se siente mal por no poder ayudar a su hijo con sus tareas de inglés.
|
273 |
+
|
274 |
+
DO NOT use this incorrect format (without paragraph breaks):
|
275 |
+
Inseguridades: • Primera inseguridad • Segunda inseguridad • Tercera inseguridad
|
276 |
+
|
277 |
+
ALSO DO NOT use this incorrect format (without empty lines between items):
|
278 |
+
Problemas:
|
279 |
+
• Tiene dificultades para encontrar tiempo para estudiar inglés debido a su trabajo y responsabilidades familiares.
|
280 |
+
• Se siente abrumado por la cantidad de información y recursos disponibles para aprender inglés.
|
281 |
+
• Le resulta difícil concentrarse y mantenerse motivado para estudiar después de un largo día de trabajo.
|
282 |
+
|
283 |
+
ENSURE there is an EMPTY LINE between each bullet point to create proper paragraph separation.
|
284 |
+
DO NOT use hyphens (-) or numbers for these lists.
|
285 |
+
"""
|
286 |
+
|
287 |
+
# Instrucciones para niveles de conciencia
|
288 |
+
consciousness_level_instructions = """
|
289 |
+
\n\nABSOLUTELY CRITICAL - CONSCIOUSNESS LEVEL MAPPING:
|
290 |
+
You MUST use the EXACT consciousness level from this mapping:
|
291 |
+
|
292 |
+
- If user selects "Desconocido" → Use "Desconocido" in your response
|
293 |
+
- If user selects "Consciente del problema" → Use "Consciente del problema" in your response
|
294 |
+
- If user selects "Consciente de la solución" → Use "Consciente de la solución" in your response
|
295 |
+
- If user selects "Consciente del producto" → Use "Consciente del producto" in your response
|
296 |
+
- If user selects "Consciente de la compra" → Use "Consciente de la compra" in your response
|
297 |
+
|
298 |
+
DO NOT DEVIATE from this mapping under any circumstances.
|
299 |
+
|
300 |
+
For "Desconocido" level:
|
301 |
+
- The person is completely unaware they have a problem
|
302 |
+
- They don't recognize any need for change
|
303 |
+
- They are not actively looking for solutions
|
304 |
+
- Their fears and frustrations exist but they don't connect them to this specific problem
|
305 |
+
|
306 |
+
For "Consciente del problema" level:
|
307 |
+
- The person knows they have a problem
|
308 |
+
- They feel the pain and recognize the issue
|
309 |
+
- They don't yet know what solutions exist
|
310 |
+
- They are beginning to research and understand their problem
|
311 |
+
|
312 |
+
For "Consciente de la solución" level:
|
313 |
+
- The person knows what type of solution they need
|
314 |
+
- They are actively comparing different options
|
315 |
+
- They understand how solutions work but haven't chosen one
|
316 |
+
- They are evaluating features, benefits, and pricing
|
317 |
+
|
318 |
+
For "Consciente del producto" level:
|
319 |
+
- The person knows about your specific product/service
|
320 |
+
- They are considering it but haven't decided to purchase
|
321 |
+
- They may have objections or concerns about your offering
|
322 |
+
- They need convincing about your specific solution
|
323 |
+
|
324 |
+
For "Consciente de la compra" level:
|
325 |
+
- The person is ready to buy
|
326 |
+
- They need a final push or incentive
|
327 |
+
- They are looking for validation of their decision
|
328 |
+
- They may need help with the purchasing process
|
329 |
+
|
330 |
+
The "Nivel de conciencia" section in your response MUST follow this exact format:
|
331 |
+
**Nivel de conciencia**: [EXACT MAPPED LEVEL] - [explanation consistent with that level]
|
332 |
+
|
333 |
+
ALL other aspects of the persona (fears, problems, etc.) MUST be consistent with the specified consciousness level.
|
334 |
+
"""
|
335 |
+
|
336 |
+
# Lo que realmente queremos (motivaciones profundas)
|
337 |
+
what_we_really_want = {
|
338 |
+
"list": [
|
339 |
+
"Increase our potential",
|
340 |
+
"Escape danger",
|
341 |
+
"Free ourselves from fear and guilt",
|
342 |
+
"Silence those who doubt us",
|
343 |
+
"Validate our feelings",
|
344 |
+
"Power over others",
|
345 |
+
"Advantages over our rivals",
|
346 |
+
"Be free from the consequences",
|
347 |
+
"Have more time dedicated to what we love",
|
348 |
+
"Less time dedicated to what we hate",
|
349 |
+
"Happiness and satisfaction",
|
350 |
+
"Prove we are right",
|
351 |
+
"Prove our detractors wrong",
|
352 |
+
"Be attractive and charming to others",
|
353 |
+
"Leave a lasting legacy",
|
354 |
+
"Higher status among our peers",
|
355 |
+
"Have a life full of comforts and luxuries",
|
356 |
+
"Be accepted by a social group or community",
|
357 |
+
"Be respected and admired for our intelligence, skills, or talents",
|
358 |
+
"Be true to ourselves and reach our full potential",
|
359 |
+
"Climb the social hierarchy",
|
360 |
+
"Establish close and lasting relationships with friends and family",
|
361 |
+
"Feel part of a group or community and be valued and appreciated by others",
|
362 |
+
"Be appreciated for our actions and receive gratitude from others"
|
363 |
+
],
|
364 |
+
"format": """
|
365 |
+
**[WHAT WE REALLY WANT]**
|
366 |
+
- Increase our potential
|
367 |
+
- Escape danger
|
368 |
+
- Free ourselves from fear and guilt
|
369 |
+
- Silence those who doubt us
|
370 |
+
- Validate our feelings
|
371 |
+
- Power over others
|
372 |
+
- Advantages over our rivals
|
373 |
+
- Be free from the consequences
|
374 |
+
- Have more time dedicated to what we love
|
375 |
+
- Less time dedicated to what we hate
|
376 |
+
- Happiness and satisfaction
|
377 |
+
- Prove we are right
|
378 |
+
- Prove our detractors wrong
|
379 |
+
- Be attractive and charming to others
|
380 |
+
- Leave a lasting legacy
|
381 |
+
- Higher status among our peers
|
382 |
+
- Have a life full of comforts and luxuries
|
383 |
+
- Be accepted by a social group or community
|
384 |
+
- Be respected and admired for our intelligence, skills, or talents
|
385 |
+
- Be true to ourselves and reach our full potential
|
386 |
+
- Climb the social hierarchy
|
387 |
+
- Establish close and lasting relationships with friends and family
|
388 |
+
- Feel part of a group or community and be valued and appreciated by others
|
389 |
+
- Be appreciated for our actions and receive gratitude from others
|
390 |
+
"""
|
391 |
+
}
|
392 |
+
|
393 |
+
validation_questions = {
|
394 |
+
"buyer_persona": """
|
395 |
+
---
|
396 |
+
**Validation Questions for Your Ideal Customer Profile:**
|
397 |
+
|
398 |
+
Have you addressed these essential aspects in your buyer persona?
|
399 |
+
|
400 |
+
1. **Demographics and Background:**
|
401 |
+
- Have you defined their age, gender, education level, and location?
|
402 |
+
- What is their current occupation and professional background?
|
403 |
+
- What is their socioeconomic status and lifestyle?
|
404 |
+
|
405 |
+
2. **Psychographics and Values:**
|
406 |
+
- What are their core values and beliefs?
|
407 |
+
- What aspirations drive their decisions?
|
408 |
+
- Which activities and interests align with your offering?
|
409 |
+
- How do their interests overlap with your expertise?
|
410 |
+
|
411 |
+
3. **Problems and Needs:**
|
412 |
+
- What specific problems are they trying to solve?
|
413 |
+
- Which pain points are most urgent for them?
|
414 |
+
- What frustrations are driving them to seek a solution?
|
415 |
+
- How does your solution address their specific challenges?
|
416 |
+
|
417 |
+
4. **Purchase Behavior:**
|
418 |
+
- What is their typical budget for similar solutions?
|
419 |
+
- How do they evaluate purchase decisions?
|
420 |
+
- What factors influence their buying choices?
|
421 |
+
- Are they willing to invest in premium solutions?
|
422 |
+
|
423 |
+
5. **Decision-Making Process:**
|
424 |
+
- Do they research thoroughly before buying?
|
425 |
+
- What information sources do they trust?
|
426 |
+
- How do reviews and recommendations influence them?
|
427 |
+
- What convinces them of a product's value?
|
428 |
+
|
429 |
+
6. **Consciousness Level:**
|
430 |
+
- Does the avatar clearly reflect one of the five consciousness levels?
|
431 |
+
- Are their fears, problems, and frustrations consistent with their consciousness level?
|
432 |
+
- Does their language and way of expressing themselves correspond to their consciousness level about the problem?
|
433 |
+
- Are their objections and doubts appropriate for their consciousness level?
|
434 |
+
- Is the type of information they seek consistent with their consciousness level?
|
435 |
+
- Do their decision criteria adequately reflect their consciousness level?
|
436 |
+
|
437 |
+
Ensure your buyer persona thoroughly addresses these questions to create an accurate profile of someone who will value and invest in your offering.
|
438 |
+
---
|
439 |
+
"""
|
440 |
+
}
|
prompts.py
CHANGED
@@ -53,7 +53,7 @@ STEPS TO COMPLETE THE TASK:
|
|
53 |
|
54 |
This prompt ensures the ideal customer aligns with your interests and skills and will be a good prospect for your products/services."""
|
55 |
|
56 |
-
def create_instruction(product_service, skills, target_audience=None, gender=None, consciousness_level="Ninguno"):
|
57 |
"""
|
58 |
Creates customized instructions to generate an ideal customer profile
|
59 |
|
@@ -63,17 +63,26 @@ def create_instruction(product_service, skills, target_audience=None, gender=Non
|
|
63 |
target_audience (str, optional): Specific target audience
|
64 |
gender (str, optional): Gender of the avatar (male/female)
|
65 |
consciousness_level (str, optional): Market awareness level
|
|
|
66 |
|
67 |
Returns:
|
68 |
str: Complete instructions to generate the profile
|
69 |
"""
|
70 |
-
# Obtener los componentes del formato
|
71 |
-
format_template = buyer_persona_formats["base_format"]
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
what_we_want = what_we_really_want["format"]
|
74 |
validation = validation_questions["buyer_persona"]
|
75 |
|
76 |
-
#
|
77 |
format_instruction = bullet_format_instructions
|
78 |
|
79 |
# Obtener el prompt principal
|
|
|
53 |
|
54 |
This prompt ensures the ideal customer aligns with your interests and skills and will be a good prospect for your products/services."""
|
55 |
|
56 |
+
def create_instruction(product_service, skills, target_audience=None, gender=None, consciousness_level="Ninguno", format_type="base_format"):
|
57 |
"""
|
58 |
Creates customized instructions to generate an ideal customer profile
|
59 |
|
|
|
63 |
target_audience (str, optional): Specific target audience
|
64 |
gender (str, optional): Gender of the avatar (male/female)
|
65 |
consciousness_level (str, optional): Market awareness level
|
66 |
+
format_type (str, optional): Type of format to use from buyer_persona_formats
|
67 |
|
68 |
Returns:
|
69 |
str: Complete instructions to generate the profile
|
70 |
"""
|
71 |
+
# Obtener los componentes del formato dinámicamente
|
72 |
+
format_template = buyer_persona_formats.get(format_type, buyer_persona_formats["base_format"])
|
73 |
+
|
74 |
+
# Intentar obtener el ejemplo correspondiente al formato seleccionado
|
75 |
+
# Convención: si el formato es "x_format", buscar "x_example"
|
76 |
+
format_base = format_type.split('_')[0] if '_' in format_type else format_type
|
77 |
+
example_key = f"{format_base}_example"
|
78 |
+
|
79 |
+
# Si no existe un ejemplo específico, usar el ejemplo predeterminado
|
80 |
+
example = buyer_persona_formats.get(example_key, buyer_persona_formats["example"])
|
81 |
+
|
82 |
what_we_want = what_we_really_want["format"]
|
83 |
validation = validation_questions["buyer_persona"]
|
84 |
|
85 |
+
# Usar la variable importada directamente
|
86 |
format_instruction = bullet_format_instructions
|
87 |
|
88 |
# Obtener el prompt principal
|