JeCabrera commited on
Commit
d8705e8
·
verified ·
1 Parent(s): 67c61b3

Upload 7 files

Browse files
Files changed (6) hide show
  1. app.py +38 -535
  2. bullet_formulas.py +402 -0
  3. gitattributes +35 -35
  4. prompts.py +66 -0
  5. requirements.txt +8 -3
  6. style.py +42 -0
app.py CHANGED
@@ -2,6 +2,9 @@ from dotenv import load_dotenv
2
  import streamlit as st
3
  import os
4
  import google.generativeai as genai
 
 
 
5
 
6
  # Cargar las variables de entorno
7
  load_dotenv()
@@ -9,490 +12,23 @@ load_dotenv()
9
  # Configurar la API de Google
10
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
11
 
12
- # Fórmulas con ejemplos y explicaciones
13
- benefits_formulas = {
14
- "GPS": {
15
- "description": """
16
- La fórmula GPS (Goal-Period-Solution) crea bullets persuasivos mezclando humor y seriedad, usando lenguaje simple y directo:
17
-
18
- 1. **Meta** (Goal):
19
- ¿Qué desea lograr el lector?
20
- - Resultado deseable
21
- - Transformación llamativa
22
- - Logro interesante
23
- - Mejora notable
24
-
25
- 2. **Periodo** (Period):
26
- ¿En qué marco temporal?
27
- - Momento cotidiano
28
- - Rutina diaria
29
- - Actividad común
30
- - Situación familiar
31
-
32
- 3. **Superación de Obstáculo** (Solution):
33
- Conectores variados con toque de humor:
34
- - sin (ausencia)
35
- - incluso si (desafío)
36
- - aunque (contraste)
37
- - a pesar de (adversidad)
38
- - cuando (circunstancia)
39
- - aun con (limitación)
40
- - mientras (simultaneidad)
41
- - por más que (intensidad)
42
-
43
- Los bullets debe ser comprensibles y ocasionalmente divertidos.
44
- """,
45
- "examples": [
46
- # Humor + Cotidiano
47
- "Domina el arte de la inversión mientras te cepillas los dientes incluso si confundes Excel con PowerPoint",
48
-
49
- # Situación Graciosa
50
- "Aprende un nuevo idioma durante tus visitas al baño aunque solo sepas decir gracias y por favor",
51
-
52
- # Exageración Divertida
53
- "Conquista el miedo a hablar en público durante el desayuno a pesar de que te tiemblen hasta las pestañas",
54
-
55
- # Contraste Humorístico
56
- "Desarrolla músculos preparando café cuando levantar la taza te parece ejercicio extremo",
57
-
58
- # Situación Relatable
59
- "Domina la fotografía profesional en el supermercado aun con ese celular que sobrevivió tres caídas",
60
-
61
- # Humor Cotidiano
62
- "Cultiva un huerto mientras contestas emails aunque tu única planta sobreviviente sea de plástico",
63
-
64
- # Autorreferencial
65
- "Escribe tu bestseller mientras te duchas por más que tu gato sea tu único fan",
66
-
67
- # Situación Común
68
- "Aprende meditación lavando platos ni siquiera necesitas ponerte en pose pretzel",
69
-
70
- # Exageración
71
- "Domina el trading paseando al perro incluso si las matemáticas te dan alergia",
72
-
73
- # Contraste Divertido
74
- "Transforma tu postura en videollamadas aunque tu silla parezca instrumento de tortura medieval",
75
-
76
- # Situación Familiar
77
- "Aprende a tocar la guitarra cocinando aunque tus vecinos amenacen con mudarse",
78
-
79
- # Humor Autoderrisivo
80
- "Mejora tu inglés cantando en la ducha a pesar de que suenes como gato en febrero",
81
-
82
- # Realidad Común
83
- "Desarrolla tu marca personal haciendo la colada cuando Instagram te parece ciencia espacial",
84
-
85
- # Situación Real
86
- "Domina el networking comprando el pan aun con tu talento para olvidar nombres",
87
-
88
- # Humor + Verdad
89
- "Construye tu portfolio mientras ves series aunque tu sofá tenga poderes hipnóticos",
90
-
91
- # Exageración Graciosa
92
- "Aprende programación jugando con tus hijos por más que tu computadora sea del jurásico",
93
-
94
- # Situación Cotidiana
95
- "Domina la cocina saludable ordenando tu escritorio incluso si hervir agua es tu especialidad",
96
-
97
- # Realidad + Humor
98
- "Conquista Instagram esperando el metro hasta con fotos de tu almuerzo congelado",
99
-
100
- # Contraste Gracioso
101
- "Transforma tu rutina de ejercicios contestando emails incluso si tu idea de deporte es buscar el control remoto",
102
-
103
- # Humor + Aspiración
104
- "Desarrolla músculos de acero haciendo las compras aunque las bolsas del super sean tu único peso"
105
- ]
106
- },
107
- "Númerica Suprema": {
108
- "description": """
109
- La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear bullets persuasivos e interesantes:
110
-
111
- 1. **Artículos Plurales** (Art):
112
- - Los (para masculino plural)
113
- - Las (para femenino plural)
114
- - Dan naturalidad y autoridad al texto
115
- - Ejemplos: "Los 7 métodos...", "Las 3 técnicas..."
116
-
117
- 2. **Números** (N):
118
- - Específicos y creíbles (3, 5, 7, 10...)
119
- - Crean estructura y expectativas claras
120
- - Se combinan con artículos: "Los 5...", "Las 3..."
121
-
122
- 3. **Adjetivo** (A):
123
- - Emocionales y descriptivos
124
- - Conectan con deseos/miedos
125
- - Ejemplos: poderosos, simples, efectivos, revolucionarios
126
-
127
- 4. **Palabra Clave** (P):
128
- - Término central del beneficio en plural
129
- - Fácil de entender y recordar
130
- - Ejemplos: métodos, estrategias, técnicas, secretos
131
-
132
- 5. **Razón** (R):
133
- - Justifica el beneficio
134
- - Añade credibilidad
135
- - Conecta con la motivación del lector
136
-
137
- 6. **Promesa** (P):
138
- - Resultado específico y medible
139
- - Timeframe realista
140
- - Beneficio final atractivo
141
-
142
- Formatos:
143
- - Corto: Art plural + N + A + P + P
144
- - Medio: Art plural + N + A + P + R + P
145
- - Largo: Art plural + N + A + P + R detallada + P específica
146
- """,
147
- "examples": [
148
- "Los 3 rituales probados para dormir mejor.",
149
- "Las 5 rutinas efectivas para fortalecer tu core.",
150
- "Los 7 hábitos esenciales para aumentar productividad.",
151
- "Las 3 técnicas comprobadas para dormir mejor basadas en neurociencia.",
152
- "Los 5 movimientos efectivos para fortalecer tu core sin equipamiento.",
153
- "Las 7 estrategias esenciales para aumentar productividad sin estrés.",
154
- "Los 3 métodos científicos para dormir mejor basados en los últimos descubrimientos de la neurociencia del sueño que transformarán tus noches.",
155
- "Las 5 secuencias efectivas para fortalecer tu core descubiertas por fisioterapeutas olímpicos que puedes hacer en casa.",
156
- "Los 7 sistemas revolucionarios para aumentar productividad desarrollados por CEOs que duplicarán tus resultados."
157
- ],
158
- "variaciones_estructura": {
159
- "básica": "Art plural + N + A + P + P",
160
- "intermedia": "Art plural + N + A + P + R + P",
161
- "avanzada": "Art plural + N + A + P + R detallada + P específica"
162
- },
163
- "uso_articulos_plurales": {
164
- "masculino_plural": {
165
- "artículo": "los",
166
- "ejemplos_palabras": "métodos, sistemas, pasos, secretos, trucos, hábitos"
167
- },
168
- "femenino_plural": {
169
- "artículo": "las",
170
- "ejemplos_palabras": "técnicas, estrategias, rutinas, tácticas, claves"
171
- }
172
- },
173
- "consejos_uso": [
174
- "Usa siempre la forma plural para mayor impacto",
175
- "Alterna entre 'los' y 'las' según la palabra clave",
176
- "Mantén coherencia en el género a lo largo del bullet",
177
- "Combina artículos con números de forma natural",
178
- "Asegura que la palabra clave esté en plural"
179
- ]
180
- },
181
- "AIDA": {
182
- "description": """
183
- La fórmula AIDA se aplica de manera flexible y estratégica, combinando 1-4 elementos para bullets impactantes y naturales:
184
-
185
- 1. **Atención** (A):
186
- Ganchos de apertura poderosos:
187
- - "¿Sabías que...?" + dato sorprendente
188
- - Mini-historia disruptiva
189
- - Idea contraintuitiva
190
- - Descubrimiento inesperado
191
- - Analogía poderosa
192
- - "La mayoría no sabe que..."
193
- - "Contrario a lo que piensas..."
194
- - "Me sorprendió descubrir que..."
195
-
196
- 2. **Interés** (I):
197
- Desarrollo del gancho inicial:
198
- - Detalles específicos y relevantes
199
- - Conexión problema-solución inesperada
200
- - Beneficios únicos y memorables
201
- - Puente situación actual-resultado
202
- - "La razón es simple..."
203
- - "Lo fascinante es que..."
204
- - "Y lo mejor de todo..."
205
- - "Lo que hace la diferencia es..."
206
-
207
- 3. **Deseo** (D):
208
- Amplificación emocional:
209
- - Imagen vivida del resultado
210
- - Experiencia personalizada
211
- - Prueba social natural
212
- - Toque de exclusividad
213
- - Conexión emocional profunda
214
- - "Imagina poder..."
215
- - "Piensa cómo sería..."
216
- - "Esto significa que podrás..."
217
-
218
- 4. **Acción** (A):
219
- Cierre natural:
220
- - Siguiente paso simple
221
- - Baja fricción para comenzar
222
- - Gratificación inmediata
223
- - Primer paso sencillo
224
- - Seguridad fluida
225
- - "Pruébalo hoy mismo..."
226
- - "Comienza con un simple..."
227
- - "Solo necesitas..."
228
-
229
- Combinaciones estratégicas:
230
- - A + I: Para despertar curiosidad y explicar el valor
231
- - A + D: Para conectar problema con deseo
232
- - I + D: Para construir deseo desde la lógica
233
- - I + D + A: Para construir convicción y motivar
234
- - A + I + D: Para educar, intrigar y crear anhelo
235
-
236
- Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
237
- """,
238
- "examples": [
239
- # A (dato sorprendente) + I (conexión) + D (prueba social) + A (paso simple)
240
- "¿Sabías que el 83% de los emprendedores exitosos dedican menos de 2 horas al día a reuniones? Lo fascinante es que usan un método japonés de gestión que les permite triplicar su productividad, y puedes empezar hoy mismo.",
241
-
242
- # A (contraintuitivo) + I (beneficio) + D (resultado) + A (inicio)
243
- "La mayoría no sabe que existe una técnica de ventas basada en videojuegos, está revolucionando el mercado B2B, genera resultados inmediatos y puedes aprenderla en 20 minutos.",
244
-
245
- # A (disruptivo) + I (detalle) + D (resultado)
246
- "Contrario a lo que piensas, el momento más productivo del día no es por la mañana, sino durante una ventana de tiempo inesperada que duplicará tu capacidad de concentración.",
247
-
248
- # A (descubrimiento) + I (solución) + D (prueba)
249
- "Me sorprendió descubrir que los mejores vendedores nunca memorizan scripts, usan una técnica secreta de improvisación.",
250
-
251
- # I (método único) + D (transformación) + A (acción)
252
- "Esta técnica revolucionaria de aprendizaje está transformando cómo los profesionales dominan nuevas habilidades, pruébala hoy con solo 10 minutos.",
253
-
254
- # I (innovación) + D (beneficio) + A (inicio)
255
- "El método del empresario silencioso cambia las reglas del networking moderno, empieza con un simple ejercicio.",
256
-
257
- # A (pregunta gancho) + D (resultado) + A (implementación)
258
- "¿Sabías que existe un ritual zen que está transformando la productividad en Silicon Valley? Implementalo mañana mismo.",
259
-
260
- # A (analogía) + D (promesa) + A (descubrimiento)
261
- "Como el bambú japonés, este método crece silenciosamente hasta que explota en resultados, descubre cómo en 5 minutos.",
262
-
263
- # A (mayoría) + I (validación) + A (acción)
264
- "La mayoría desconoce el mejor momento para tomar decisiones importantes, la ciencia lo confirma, implementa este descubrimiento hoy.",
265
-
266
- # A (mini-cambio) + I (resultado) + A (inicio)
267
- "Un pequeño cambio en tu rutina de email desencadenará mejoras exponenciales, comienza ahora."
268
-
269
- # A + I + D + A (metáfora natural)
270
- "Como el bambú japonés, este método crece invisible hasta explotar en resultados que transformarán tu negocio",
271
-
272
- # A + I + D + A (analogía deportiva)
273
- "Los atletas olímpicos entrenan menos horas pero logran más que sus rivales gracias a esta técnica de productividad japonesa",
274
-
275
- # A + I + D (metáfora de naturaleza)
276
- "Al igual que las abejas construyen colmenas perfectas, este sistema organiza tu tiempo en patrones de máxima eficiencia",
277
-
278
- # A + I + D (analogía artística)
279
- "Como un director de orquesta que guía sin palabras, este método de ventas fluye naturalmente en cada conversación",
280
-
281
- # I + D + A (metáfora de agua)
282
- "Este sistema de aprendizaje fluye como un río, adaptándose naturalmente a tu estilo mientras potencia tus habilidades",
283
-
284
- # I + D + A (analogía arquitectónica)
285
- "Como los antiguos arquitectos japoneses que construían sin clavos, este método de networking conecta sin forzar relaciones",
286
-
287
- # A + D + A (metáfora zen)
288
- "Similar al jardín zen que revela su belleza gradualmente, esta rutina matutina despliega tu potencial día tras día",
289
-
290
- # A + D + A (analogía natural)
291
- "Como el roble que crece firme ante las tormentas, este método fortalece tu productividad en tiempos de caos",
292
-
293
- # A + I + A (metáfora lunar)
294
- "Al igual que la luna influye en las mareas, la neurociencia revela los ciclos naturales de tu productividad máxima",
295
-
296
- # A + I + A (analogía culinaria)
297
- "Como un chef que transforma ingredientes simples en obras maestras, este sistema eleva tu rutina diaria a resultados extraordinarios"
298
- ]
299
- },
300
- "4U": {
301
- "description": """
302
- La fórmula 4U se aplica de manera flexible y estratégica, combinando 1-4 elementos para crear bullets impactantes y naturales:
303
-
304
- 1. **Útil** (Useful):
305
- Beneficios prácticos y tangibles:
306
- - "Cómo conseguir..." + resultado específico
307
- - "La guía paso a paso para..."
308
- - "El método probado que..."
309
- - "Descubre la forma de..."
310
- - "Aprende a..." + beneficio concreto
311
- - "La solución definitiva para..."
312
- - "El sistema que te permite..."
313
- - "La estrategia que garantiza..."
314
-
315
- 2. **Urgente** (Urgent):
316
- Motivadores de acción inmediata:
317
- - "Última oportunidad para..."
318
- - "Solo disponible hasta..."
319
- - "Antes de que sea tarde..."
320
- - "Mientras aún hay tiempo..."
321
- - "No esperes a que..."
322
- - "Aprovecha ahora..."
323
- - "La oferta expira en..."
324
- - "Date prisa antes de que..."
325
-
326
- 3. **Único** (Unique):
327
- Diferenciadores memorables:
328
- - "El método poco conocido..."
329
- - "La técnica contraintuitiva..."
330
- - "El descubrimiento sorprendente..."
331
- - "La estrategia secreta..."
332
- - "El sistema revolucionario..."
333
- - "El enfoque innovador..."
334
- - "La solución inesperada..."
335
- - "El método exclusivo..."
336
-
337
- 4. **Ultra-específico** (Ultra-specific):
338
- Detalles precisos y medibles:
339
- - Números exactos: "27 técnicas..."
340
- - Tiempos concretos: "13 minutos..."
341
- - Resultados medibles: "63% más..."
342
- - Pasos definidos: "3 pasos..."
343
- - Datos precisos: "8.3 veces más..."
344
- - Métricas claras: "2.5x más rápido..."
345
- - Cantidades específicas: "97 personas..."
346
- - Plazos definidos: "21 días..."
347
-
348
- Combinaciones estratégicas:
349
- - Útil + Ultra-específico: Para audiencias prácticas y orientadas a resultados
350
- - Urgente + Único: Para ofertas especiales y lanzamientos
351
- - Único + Ultra-específico: Para diferenciación basada en datos
352
- - Útil + Urgente: Para motivar acción inmediata
353
- - Útil + Único + Ultra-específico: Para establecer autoridad y credibilidad
354
- - Útil + Urgente + Ultra-específico: Para ofertas con beneficios medibles
355
- - Único + Urgente + Ultra-específico: Para lanzamientos exclusivos
356
- - Útil + Único + Urgente: Para ofertas transformadoras
357
- - Las 4U juntas: Para máximo impacto en ofertas premium
358
-
359
- Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
360
- """,
361
- "examples": [
362
- # Útil + Ultra-específico (Para audiencias prácticas y orientadas a resultados)
363
- "Aprende 347 palabras en alemán memorizando solo 12 minutos al día mientras cocinas",
364
- "Cultiva 27 tipos de hierbas aromáticas en 1.5 metros cuadrados de balcón generando 180 euros mensuales",
365
- "Automatiza 89% de tus tareas administrativas dedicando 31 minutos cada lunes",
366
-
367
- # Urgente + Único (Para ofertas especiales y lanzamientos)
368
- "Un cartero rural comparte su sistema de gestión del tiempo antes de su retiro definitivo",
369
- "La última clase del profesor más longevo de Oxford revela su método de memorización",
370
- "El manuscrito perdido de un monje escriba sale a la luz tras 80 años en el Vaticano",
371
-
372
- # Único + Ultra-específico (Para diferenciación basada en datos)
373
- "Un grupo de 1457 abuelas italianas entrena una IA para reconocer pasta al dente con 99.7% de precisión",
374
- "La técnica de un bibliotecario jubilado cataloga 47893 libros en 73 días usando fichas de colores",
375
- "Un taxista noruego fotografía 12437 auroras boreales usando un iPhone 6 y tres filtros caseros",
376
-
377
- # Útil + Urgente (Para motivar acción inmediata)
378
- "Aprende a crear tu huerto urbano antes de que suban los precios de las verduras",
379
- "Asegura tu plaza en el programa de ahorro energético antes del aumento de tarifas",
380
- "Registra tu marca personal mientras el dominio premium sigue disponible",
381
-
382
- # Útil + Único + Ultra-específico (Para establecer autoridad y credibilidad)
383
- "La técnica de un cartero rural ayuda a 1893 personas a organizar su tiempo usando solo 17 minutos cada mañana",
384
- "Un bibliotecario retirado genera 12437 euros vendiendo libros antiguos por menos de 3 euros cada uno",
385
- "Una abuela italiana entrena algoritmos que reducen el tiempo de cocción un 82% manteniendo el sabor tradicional",
386
-
387
- # Útil + Urgente + Ultra-específico (Para ofertas con beneficios medibles)
388
- "Aprende 478 palabras en japonés en 21 días antes del aumento de precio del programa",
389
- "Automatiza 95% de tu contabilidad en 7 días previo a la nueva normativa fiscal",
390
- "Genera 7 fuentes de ingresos pasivos en 30 días antes del cambio en las regulaciones",
391
-
392
- # Único + Urgente + Ultra-específico (Para lanzamientos exclusivos)
393
- "El sistema de un monje copista digitaliza 7345 manuscritos en 31 días últimas plazas disponibles",
394
- "La fórmula de un taxista fotografía 893 auroras boreales perfectas registro exclusivo esta semana",
395
- "El método de un bibliotecario jubilado organiza 47893 archivos en 73 días acceso limitado",
396
-
397
- # Útil + Único + Urgente (Para ofertas transformadoras)
398
- "La técnica de un cartero rural transforma tu productividad antes del fin de semana",
399
- "El sistema de una abuela italiana revoluciona tu forma de cocinar registro beta por 24 horas",
400
- "El método de un bibliotecario maximiza tu capacidad de aprendizaje plazas limitadas"
401
- ],
402
- "consejos_uso": [
403
- "Asegura que cada elemento U refuerce a los demás",
404
- "Mantén un equilibrio entre urgencia y credibilidad",
405
- "Usa datos específicos para aumentar la confianza",
406
- "Adapta el orden de los elementos según tu audiencia",
407
- "Evita exageraciones que puedan generar desconfianza",
408
- "Combina los elementos de forma natural y fluida",
409
- "Asegúrate de que cada elemento añada valor real",
410
- "Prueba diferentes combinaciones para encontrar las más efectivas"
411
- ]
412
- }
413
- }
414
-
415
  # Función para generar bullets de beneficios
416
- def generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula):
417
-
418
- # Crear la configuración del modelo
419
  generation_config = {
420
- "temperature": temperature,
421
- "top_p": 0.65, # Considerar un poco menos de palabras probables
422
- "top_k": 360, # Aumentar las palabras candidatas para más variedad
423
- "max_output_tokens": 8196, # Mantenerlo igual, pero puedes aumentar si deseas más detalle
424
  }
 
425
 
426
- model = genai.GenerativeModel(
427
- model_name="gemini-2.0-flash",
428
- generation_config=generation_config,
429
- )
430
-
431
- # Incluir las instrucciones del sistema en el prompt principal
432
- system_prompt = """Eres un copywriter experto de clase mundial, con experiencia en crear beneficios que conectan emocionalmente y abordan los deseos, problemas y motivaciones de la audiencia objetivo.
433
-
434
- OBJETIVO:
435
- - Generar bullets de beneficios convincentes y específicos en español
436
- - Conectar emocionalmente con la audiencia
437
- - Abordar deseos, problemas y motivaciones reales
438
- - Mantener un lenguaje natural y conversacional
439
- - Orientar cada beneficio a la acción
440
-
441
- REGLAS DE FORMATO:
442
- - Cada beneficio debe comenzar con "• "
443
- - Un beneficio por línea
444
- - Sin números al inicio
445
- - Sin explicaciones ni categorías
446
- - Añadir un salto de línea entre cada beneficio
447
- - Nunca incluir símbolos : en los bullets
448
- - Cada beneficio debe ser una frase completa y concisa
449
-
450
- ESTRUCTURA DE CADA BENEFICIO:
451
- - Debe ser relevante para la audiencia objetivo
452
- - Debe mostrar un resultado específico
453
- - Debe incluir un elemento emocional
454
- - Debe eliminar una objeción o dolor
455
- - Debe inspirar acción inmediata
456
-
457
- EJEMPLO DE FORMATO:
458
- • Transforma tu negocio con estrategias probadas que duplican tus ingresos en 90 días, sin sacrificar tu tiempo en familia.
459
-
460
- • Domina las técnicas más efectivas para conquistar tu mercado, mientras mantienes el equilibrio entre trabajo y vida personal.
461
-
462
- • Implementa sistemas automatizados que hacen crecer tu empresa incluso mientras duermes, eliminando la necesidad de trabajar más horas.
463
-
464
- IMPORTANTE:
465
- - Cada beneficio debe ser único y específico
466
- - Evitar repeticiones y generalidades
467
- - Mantener un tono persuasivo pero honesto
468
- - Adaptar el lenguaje al nivel de comprensión de la audiencia
469
- - Enfocarse en resultados tangibles y medibles"""
470
 
471
- # Crear un mensaje para el modelo, destacando la audiencia, el producto, la fórmula seleccionada y los ejemplos
472
- benefits_instruction = (
473
- f"{system_prompt}\n\n"
474
- f"Tu tarea es crear {number_of_benefits} beneficios irresistibles diseñados para {target_audience}. "
475
- f"El objetivo es mostrar cómo {product} puede transformar la vida del lector, conectando de forma natural y emocional. "
476
- f"Evita usar menciones literales o repetitivas, y destaca soluciones concretas, mostrando cómo el producto elimina obstáculos o satisface deseos reales. "
477
- f"Usa la fórmula seleccionada como guía:\n\n{selected_formula['description']}\n\n"
478
- f"Inspírate en estos ejemplos:\n"
479
- f"- {selected_formula['examples'][0]}\n"
480
- f"- {selected_formula['examples'][1]}\n"
481
- f"- {selected_formula['examples'][2]}\n\n"
482
- f"Tu objetivo es inspirar deseo y acción, evitando explicaciones o categorías en la respuesta."
483
- )
484
-
485
- chat_session = model.start_chat(
486
- history=[
487
- {
488
- "role": "user",
489
- "parts": [benefits_instruction],
490
- },
491
- ]
492
- )
493
-
494
- response = chat_session.send_message("Genera los beneficios") # Enviar mensaje para obtener la respuesta
495
- return response.text # Regresar la respuesta directamente
496
 
497
  # Configurar la interfaz de usuario con Streamlit
498
  st.set_page_config(page_title="Bullet Benefits Generator", layout="wide")
@@ -505,55 +41,14 @@ with open("manual.md", "r", encoding="utf-8") as file:
505
  st.sidebar.markdown(manual_content)
506
 
507
  # Ocultar elementos de la interfaz
508
- st.markdown("""
509
- <style>
510
-
511
- /* Reducir espacio superior */
512
- .block-container {
513
- padding-top: 1rem;
514
- padding-bottom: 5rem;
515
- }
516
-
517
- /* Ajustar espaciado del título */
518
- h1 {
519
- margin-top: 0rem;
520
- padding-top: 1rem;
521
- }
522
-
523
- /* Ajustar espaciado del subtítulo */
524
- h4 {
525
- margin-top: 0.5rem;
526
- padding-top: 0rem;
527
- }
528
- </style>
529
- """, unsafe_allow_html=True)
530
 
531
  # Centrar el título y el subtítulo
532
  st.markdown("<h1 style='text-align: center;'>Bullet Benefits Generator</h1>", unsafe_allow_html=True)
533
  st.markdown("<h4 style='text-align: center;'>Transforma características en beneficios irresistibles que conectan emocionalmente con tu audiencia.</h4>", unsafe_allow_html=True)
534
 
535
  # Añadir CSS personalizado para el botón
536
- st.markdown("""
537
- <style>
538
- div.stButton > button {
539
- background-color: #FFCC00;
540
- color: black;
541
- width: 90%;
542
- height: 60px;
543
- font-weight: bold;
544
- font-size: 22px;
545
- text-transform: uppercase;
546
- border: 1px solid #000000;
547
- border-radius: 8px;
548
- display: block;
549
- margin: 0 auto;
550
- }
551
- div.stButton > button:hover {
552
- background-color: #FFD700;
553
- color: black;
554
- }
555
- </style>
556
- """, unsafe_allow_html=True)
557
 
558
  # Crear columnas
559
  col1, col2 = st.columns([1, 2])
@@ -568,28 +63,36 @@ with col1:
568
  with st.expander("Personaliza tus beneficios"):
569
  temperature = st.slider("Creatividad", min_value=0.0, max_value=2.0, value=1.0, step=0.1)
570
 
 
571
  selected_formula_key = st.selectbox(
572
  "Selecciona una fórmula para tus beneficios",
573
- options=list(benefits_formulas.keys())
574
  )
575
- selected_formula = benefits_formulas[selected_formula_key]
576
 
577
  # Botón de enviar
578
  submit = st.button("Generar Beneficios")
579
 
580
  # Mostrar los beneficios generados
 
581
  if submit:
582
  if target_audience and product and selected_formula:
583
- try:
584
- # Obtener la respuesta del modelo
585
- generated_benefits = generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula)
586
- col2.markdown(f"""
587
- <div style="padding: 15px; border: 1px solid #ddd; border-radius: 8px;">
588
- <h3>Beneficios Generados:</h3>
589
- <p>{generated_benefits}</p>
590
- </div>
591
- """, unsafe_allow_html=True)
592
- except Exception as e:
593
- col2.error(f"Error al generar beneficios: {e}")
 
 
 
 
 
 
594
  else:
595
  col2.warning("Por favor, completa todos los campos antes de generar beneficios.")
 
2
  import streamlit as st
3
  import os
4
  import google.generativeai as genai
5
+ from bullet_formulas import bullet_formulas
6
+ from style import styles
7
+ from prompts import create_instruction
8
 
9
  # Cargar las variables de entorno
10
  load_dotenv()
 
12
  # Configurar la API de Google
13
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  # Función para generar bullets de beneficios
16
+ @st.cache_resource
17
+ def get_model(temperature):
 
18
  generation_config = {
19
+ "temperature": temperature,
 
 
 
20
  }
21
+ return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
22
 
23
+ def generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula):
24
+ if not target_audience or not product:
25
+ return "Por favor, completa todos los campos requeridos."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
+ model = get_model(temperature)
28
+ benefits_instruction = create_instruction(number_of_benefits, target_audience, product, selected_formula)
29
+
30
+ response = model.generate_content([benefits_instruction], generation_config={"temperature": temperature})
31
+ return response.parts[0].text if response and response.parts else "Error generating content."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  # Configurar la interfaz de usuario con Streamlit
34
  st.set_page_config(page_title="Bullet Benefits Generator", layout="wide")
 
41
  st.sidebar.markdown(manual_content)
42
 
43
  # Ocultar elementos de la interfaz
44
+ st.markdown(styles["main_layout"], unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  # Centrar el título y el subtítulo
47
  st.markdown("<h1 style='text-align: center;'>Bullet Benefits Generator</h1>", unsafe_allow_html=True)
48
  st.markdown("<h4 style='text-align: center;'>Transforma características en beneficios irresistibles que conectan emocionalmente con tu audiencia.</h4>", unsafe_allow_html=True)
49
 
50
  # Añadir CSS personalizado para el botón
51
+ st.markdown(styles["button"], unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
  # Crear columnas
54
  col1, col2 = st.columns([1, 2])
 
63
  with st.expander("Personaliza tus beneficios"):
64
  temperature = st.slider("Creatividad", min_value=0.0, max_value=2.0, value=1.0, step=0.1)
65
 
66
+ # Update the variable name in the UI section
67
  selected_formula_key = st.selectbox(
68
  "Selecciona una fórmula para tus beneficios",
69
+ options=list(bullet_formulas.keys())
70
  )
71
+ selected_formula = bullet_formulas[selected_formula_key]
72
 
73
  # Botón de enviar
74
  submit = st.button("Generar Beneficios")
75
 
76
  # Mostrar los beneficios generados
77
+ # Update the submit section
78
  if submit:
79
  if target_audience and product and selected_formula:
80
+ with st.spinner('Generando beneficios...'):
81
+ generated_benefits = generate_benefits(
82
+ number_of_benefits,
83
+ target_audience,
84
+ product,
85
+ temperature,
86
+ selected_formula
87
+ )
88
+ if not isinstance(generated_benefits, str):
89
+ col2.error("Error al generar beneficios")
90
+ else:
91
+ col2.markdown(f"""
92
+ <div style="padding: 15px; border: 1px solid #ddd; border-radius: 8px;">
93
+ <h3>Beneficios Generados:</h3>
94
+ <p>{generated_benefits}</p>
95
+ </div>
96
+ """, unsafe_allow_html=True)
97
  else:
98
  col2.warning("Por favor, completa todos los campos antes de generar beneficios.")
bullet_formulas.py ADDED
@@ -0,0 +1,402 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Fórmulas con ejemplos y explicaciones
2
+ bullet_formulas = {
3
+ "GPS": {
4
+ "description": """
5
+ La fórmula GPS (Goal-Period-Solution) crea bullets persuasivos mezclando humor y seriedad, usando lenguaje simple y directo:
6
+
7
+ 1. **Meta** (Goal):
8
+ ¿Qué desea lograr el lector?
9
+ - Resultado deseable
10
+ - Transformación llamativa
11
+ - Logro interesante
12
+ - Mejora notable
13
+
14
+ 2. **Periodo** (Period):
15
+ ¿En qué marco temporal?
16
+ - Momento cotidiano
17
+ - Rutina diaria
18
+ - Actividad común
19
+ - Situación familiar
20
+
21
+ 3. **Superación de Obstáculo** (Solution):
22
+ Conectores variados con toque de humor:
23
+ - sin (ausencia)
24
+ - incluso si (desafío)
25
+ - aunque (contraste)
26
+ - a pesar de (adversidad)
27
+ - cuando (circunstancia)
28
+ - aun con (limitación)
29
+ - mientras (simultaneidad)
30
+ - por más que (intensidad)
31
+
32
+ Los bullets debe ser comprensibles y ocasionalmente divertidos.
33
+ """,
34
+ "examples": [
35
+ # Humor + Cotidiano
36
+ "Domina el arte de la inversión mientras te cepillas los dientes incluso si confundes Excel con PowerPoint",
37
+
38
+ # Situación Graciosa
39
+ "Aprende un nuevo idioma durante tus visitas al baño aunque solo sepas decir gracias y por favor",
40
+
41
+ # Exageración Divertida
42
+ "Conquista el miedo a hablar en público durante el desayuno a pesar de que te tiemblen hasta las pestañas",
43
+
44
+ # Contraste Humorístico
45
+ "Desarrolla músculos preparando café cuando levantar la taza te parece ejercicio extremo",
46
+
47
+ # Situación Relatable
48
+ "Domina la fotografía profesional en el supermercado aun con ese celular que sobrevivió tres caídas",
49
+
50
+ # Humor Cotidiano
51
+ "Cultiva un huerto mientras contestas emails aunque tu única planta sobreviviente sea de plástico",
52
+
53
+ # Autorreferencial
54
+ "Escribe tu bestseller mientras te duchas por más que tu gato sea tu único fan",
55
+
56
+ # Situación Común
57
+ "Aprende meditación lavando platos ni siquiera necesitas ponerte en pose pretzel",
58
+
59
+ # Exageración
60
+ "Domina el trading paseando al perro incluso si las matemáticas te dan alergia",
61
+
62
+ # Contraste Divertido
63
+ "Transforma tu postura en videollamadas aunque tu silla parezca instrumento de tortura medieval",
64
+
65
+ # Situación Familiar
66
+ "Aprende a tocar la guitarra cocinando aunque tus vecinos amenacen con mudarse",
67
+
68
+ # Humor Autoderrisivo
69
+ "Mejora tu inglés cantando en la ducha a pesar de que suenes como gato en febrero",
70
+
71
+ # Realidad Común
72
+ "Desarrolla tu marca personal haciendo la colada cuando Instagram te parece ciencia espacial",
73
+
74
+ # Situación Real
75
+ "Domina el networking comprando el pan aun con tu talento para olvidar nombres",
76
+
77
+ # Humor + Verdad
78
+ "Construye tu portfolio mientras ves series aunque tu sofá tenga poderes hipnóticos",
79
+
80
+ # Exageración Graciosa
81
+ "Aprende programación jugando con tus hijos por más que tu computadora sea del jurásico",
82
+
83
+ # Situación Cotidiana
84
+ "Domina la cocina saludable ordenando tu escritorio incluso si hervir agua es tu especialidad",
85
+
86
+ # Realidad + Humor
87
+ "Conquista Instagram esperando el metro hasta con fotos de tu almuerzo congelado",
88
+
89
+ # Contraste Gracioso
90
+ "Transforma tu rutina de ejercicios contestando emails incluso si tu idea de deporte es buscar el control remoto",
91
+
92
+ # Humor + Aspiración
93
+ "Desarrolla músculos de acero haciendo las compras aunque las bolsas del super sean tu único peso"
94
+ ]
95
+ },
96
+ "Númerica Suprema": {
97
+ "description": """
98
+ La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear bullets persuasivos e interesantes:
99
+
100
+ 1. **Artículos Plurales** (Art):
101
+ - Los (para masculino plural)
102
+ - Las (para femenino plural)
103
+ - Dan naturalidad y autoridad al texto
104
+ - Ejemplos: "Los 7 métodos...", "Las 3 técnicas..."
105
+
106
+ 2. **Números** (N):
107
+ - Específicos y creíbles (3, 5, 7, 10...)
108
+ - Crean estructura y expectativas claras
109
+ - Se combinan con artículos: "Los 5...", "Las 3..."
110
+
111
+ 3. **Adjetivo** (A):
112
+ - Emocionales y descriptivos
113
+ - Conectan con deseos/miedos
114
+ - Ejemplos: poderosos, simples, efectivos, revolucionarios
115
+
116
+ 4. **Palabra Clave** (P):
117
+ - Término central del beneficio en plural
118
+ - Fácil de entender y recordar
119
+ - Ejemplos: métodos, estrategias, técnicas, secretos
120
+
121
+ 5. **Razón** (R):
122
+ - Justifica el beneficio
123
+ - Añade credibilidad
124
+ - Conecta con la motivación del lector
125
+
126
+ 6. **Promesa** (P):
127
+ - Resultado específico y medible
128
+ - Timeframe realista
129
+ - Beneficio final atractivo
130
+
131
+ Formatos:
132
+ - Corto: Art plural + N + A + P + P
133
+ - Medio: Art plural + N + A + P + R + P
134
+ - Largo: Art plural + N + A + P + R detallada + P específica
135
+ """,
136
+ "examples": [
137
+ "Los 3 rituales probados para dormir mejor.",
138
+ "Las 5 rutinas efectivas para fortalecer tu core.",
139
+ "Los 7 hábitos esenciales para aumentar productividad.",
140
+ "Las 3 técnicas comprobadas para dormir mejor basadas en neurociencia.",
141
+ "Los 5 movimientos efectivos para fortalecer tu core sin equipamiento.",
142
+ "Las 7 estrategias esenciales para aumentar productividad sin estrés.",
143
+ "Los 3 métodos científicos para dormir mejor basados en los últimos descubrimientos de la neurociencia del sueño que transformarán tus noches.",
144
+ "Las 5 secuencias efectivas para fortalecer tu core descubiertas por fisioterapeutas olímpicos que puedes hacer en casa.",
145
+ "Los 7 sistemas revolucionarios para aumentar productividad desarrollados por CEOs que duplicarán tus resultados."
146
+ ],
147
+ "variaciones_estructura": {
148
+ "básica": "Art plural + N + A + P + P",
149
+ "intermedia": "Art plural + N + A + P + R + P",
150
+ "avanzada": "Art plural + N + A + P + R detallada + P específica"
151
+ },
152
+ "uso_articulos_plurales": {
153
+ "masculino_plural": {
154
+ "artículo": "los",
155
+ "ejemplos_palabras": "métodos, sistemas, pasos, secretos, trucos, hábitos"
156
+ },
157
+ "femenino_plural": {
158
+ "artículo": "las",
159
+ "ejemplos_palabras": "técnicas, estrategias, rutinas, tácticas, claves"
160
+ }
161
+ },
162
+ "consejos_uso": [
163
+ "Usa siempre la forma plural para mayor impacto",
164
+ "Alterna entre 'los' y 'las' según la palabra clave",
165
+ "Mantén coherencia en el género a lo largo del bullet",
166
+ "Combina artículos con números de forma natural",
167
+ "Asegura que la palabra clave esté en plural"
168
+ ]
169
+ },
170
+ "AIDA": {
171
+ "description": """
172
+ La fórmula AIDA se aplica de manera flexible y estratégica, combinando 1-4 elementos para bullets impactantes y naturales:
173
+
174
+ 1. **Atención** (A):
175
+ Ganchos de apertura poderosos:
176
+ - "¿Sabías que...?" + dato sorprendente
177
+ - Mini-historia disruptiva
178
+ - Idea contraintuitiva
179
+ - Descubrimiento inesperado
180
+ - Analogía poderosa
181
+ - "La mayoría no sabe que..."
182
+ - "Contrario a lo que piensas..."
183
+ - "Me sorprendió descubrir que..."
184
+
185
+ 2. **Interés** (I):
186
+ Desarrollo del gancho inicial:
187
+ - Detalles específicos y relevantes
188
+ - Conexión problema-solución inesperada
189
+ - Beneficios únicos y memorables
190
+ - Puente situación actual-resultado
191
+ - "La razón es simple..."
192
+ - "Lo fascinante es que..."
193
+ - "Y lo mejor de todo..."
194
+ - "Lo que hace la diferencia es..."
195
+
196
+ 3. **Deseo** (D):
197
+ Amplificación emocional:
198
+ - Imagen vivida del resultado
199
+ - Experiencia personalizada
200
+ - Prueba social natural
201
+ - Toque de exclusividad
202
+ - Conexión emocional profunda
203
+ - "Imagina poder..."
204
+ - "Piensa cómo sería..."
205
+ - "Esto significa que podrás..."
206
+
207
+ 4. **Acción** (A):
208
+ Cierre natural:
209
+ - Siguiente paso simple
210
+ - Baja fricción para comenzar
211
+ - Gratificación inmediata
212
+ - Primer paso sencillo
213
+ - Seguridad fluida
214
+ - "Pruébalo hoy mismo..."
215
+ - "Comienza con un simple..."
216
+ - "Solo necesitas..."
217
+
218
+ Combinaciones estratégicas:
219
+ - A + I: Para despertar curiosidad y explicar el valor
220
+ - A + D: Para conectar problema con deseo
221
+ - I + D: Para construir deseo desde la lógica
222
+ - I + D + A: Para construir convicción y motivar
223
+ - A + I + D: Para educar, intrigar y crear anhelo
224
+
225
+ Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
226
+ """,
227
+ "examples": [
228
+ # A (dato sorprendente) + I (conexión) + D (prueba social) + A (paso simple)
229
+ "¿Sabías que el 83% de los emprendedores exitosos dedican menos de 2 horas al día a reuniones? Lo fascinante es que usan un método japonés de gestión que les permite triplicar su productividad, y puedes empezar hoy mismo.",
230
+
231
+ # A (contraintuitivo) + I (beneficio) + D (resultado) + A (inicio)
232
+ "La mayoría no sabe que existe una técnica de ventas basada en videojuegos, está revolucionando el mercado B2B, genera resultados inmediatos y puedes aprenderla en 20 minutos.",
233
+
234
+ # A (disruptivo) + I (detalle) + D (resultado)
235
+ "Contrario a lo que piensas, el momento más productivo del día no es por la mañana, sino durante una ventana de tiempo inesperada que duplicará tu capacidad de concentración.",
236
+
237
+ # A (descubrimiento) + I (solución) + D (prueba)
238
+ "Me sorprendió descubrir que los mejores vendedores nunca memorizan scripts, usan una técnica secreta de improvisación.",
239
+
240
+ # I (método único) + D (transformación) + A (acción)
241
+ "Esta técnica revolucionaria de aprendizaje está transformando cómo los profesionales dominan nuevas habilidades, pruébala hoy con solo 10 minutos.",
242
+
243
+ # I (innovación) + D (beneficio) + A (inicio)
244
+ "El método del empresario silencioso cambia las reglas del networking moderno, empieza con un simple ejercicio.",
245
+
246
+ # A (pregunta gancho) + D (resultado) + A (implementación)
247
+ "¿Sabías que existe un ritual zen que está transformando la productividad en Silicon Valley? Implementalo mañana mismo.",
248
+
249
+ # A (analogía) + D (promesa) + A (descubrimiento)
250
+ "Como el bambú japonés, este método crece silenciosamente hasta que explota en resultados, descubre cómo en 5 minutos.",
251
+
252
+ # A (mayoría) + I (validación) + A (acción)
253
+ "La mayoría desconoce el mejor momento para tomar decisiones importantes, la ciencia lo confirma, implementa este descubrimiento hoy.",
254
+
255
+ # A (mini-cambio) + I (resultado) + A (inicio)
256
+ "Un pequeño cambio en tu rutina de email desencadenará mejoras exponenciales, comienza ahora."
257
+
258
+ # A + I + D + A (metáfora natural)
259
+ "Como el bambú japonés, este método crece invisible hasta explotar en resultados que transformarán tu negocio",
260
+
261
+ # A + I + D + A (analogía deportiva)
262
+ "Los atletas olímpicos entrenan menos horas pero logran más que sus rivales gracias a esta técnica de productividad japonesa",
263
+
264
+ # A + I + D (metáfora de naturaleza)
265
+ "Al igual que las abejas construyen colmenas perfectas, este sistema organiza tu tiempo en patrones de máxima eficiencia",
266
+
267
+ # A + I + D (analogía artística)
268
+ "Como un director de orquesta que guía sin palabras, este método de ventas fluye naturalmente en cada conversación",
269
+
270
+ # I + D + A (metáfora de agua)
271
+ "Este sistema de aprendizaje fluye como un río, adaptándose naturalmente a tu estilo mientras potencia tus habilidades",
272
+
273
+ # I + D + A (analogía arquitectónica)
274
+ "Como los antiguos arquitectos japoneses que construían sin clavos, este método de networking conecta sin forzar relaciones",
275
+
276
+ # A + D + A (metáfora zen)
277
+ "Similar al jardín zen que revela su belleza gradualmente, esta rutina matutina despliega tu potencial día tras día",
278
+
279
+ # A + D + A (analogía natural)
280
+ "Como el roble que crece firme ante las tormentas, este método fortalece tu productividad en tiempos de caos",
281
+
282
+ # A + I + A (metáfora lunar)
283
+ "Al igual que la luna influye en las mareas, la neurociencia revela los ciclos naturales de tu productividad máxima",
284
+
285
+ # A + I + A (analogía culinaria)
286
+ "Como un chef que transforma ingredientes simples en obras maestras, este sistema eleva tu rutina diaria a resultados extraordinarios"
287
+ ]
288
+ },
289
+ "4U": {
290
+ "description": """
291
+ La fórmula 4U se aplica de manera flexible y estratégica, combinando 1-4 elementos para crear bullets impactantes y naturales:
292
+
293
+ 1. **Útil** (Useful):
294
+ Beneficios prácticos y tangibles:
295
+ - "Cómo conseguir..." + resultado específico
296
+ - "La guía paso a paso para..."
297
+ - "El método probado que..."
298
+ - "Descubre la forma de..."
299
+ - "Aprende a..." + beneficio concreto
300
+ - "La solución definitiva para..."
301
+ - "El sistema que te permite..."
302
+ - "La estrategia que garantiza..."
303
+
304
+ 2. **Urgente** (Urgent):
305
+ Motivadores de acción inmediata:
306
+ - "Última oportunidad para..."
307
+ - "Solo disponible hasta..."
308
+ - "Antes de que sea tarde..."
309
+ - "Mientras aún hay tiempo..."
310
+ - "No esperes a que..."
311
+ - "Aprovecha ahora..."
312
+ - "La oferta expira en..."
313
+ - "Date prisa antes de que..."
314
+
315
+ 3. **Único** (Unique):
316
+ Diferenciadores memorables:
317
+ - "El método poco conocido..."
318
+ - "La técnica contraintuitiva..."
319
+ - "El descubrimiento sorprendente..."
320
+ - "La estrategia secreta..."
321
+ - "El sistema revolucionario..."
322
+ - "El enfoque innovador..."
323
+ - "La solución inesperada..."
324
+ - "El método exclusivo..."
325
+
326
+ 4. **Ultra-específico** (Ultra-specific):
327
+ Detalles precisos y medibles:
328
+ - Números exactos: "27 técnicas..."
329
+ - Tiempos concretos: "13 minutos..."
330
+ - Resultados medibles: "63% más..."
331
+ - Pasos definidos: "3 pasos..."
332
+ - Datos precisos: "8.3 veces más..."
333
+ - Métricas claras: "2.5x más rápido..."
334
+ - Cantidades específicas: "97 personas..."
335
+ - Plazos definidos: "21 días..."
336
+
337
+ Combinaciones estratégicas:
338
+ - Útil + Ultra-específico: Para audiencias prácticas y orientadas a resultados
339
+ - Urgente + Único: Para ofertas especiales y lanzamientos
340
+ - Único + Ultra-específico: Para diferenciación basada en datos
341
+ - Útil + Urgente: Para motivar acción inmediata
342
+ - Útil + Único + Ultra-específico: Para establecer autoridad y credibilidad
343
+ - Útil + Urgente + Ultra-específico: Para ofertas con beneficios medibles
344
+ - Único + Urgente + Ultra-específico: Para lanzamientos exclusivos
345
+ - Útil + Único + Urgente: Para ofertas transformadoras
346
+ - Las 4U juntas: Para máximo impacto en ofertas premium
347
+
348
+ Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
349
+ """,
350
+ "examples": [
351
+ # Útil + Ultra-específico (Para audiencias prácticas y orientadas a resultados)
352
+ "Aprende 347 palabras en alemán memorizando solo 12 minutos al día mientras cocinas",
353
+ "Cultiva 27 tipos de hierbas aromáticas en 1.5 metros cuadrados de balcón generando 180 euros mensuales",
354
+ "Automatiza 89% de tus tareas administrativas dedicando 31 minutos cada lunes",
355
+
356
+ # Urgente + Único (Para ofertas especiales y lanzamientos)
357
+ "Un cartero rural comparte su sistema de gestión del tiempo antes de su retiro definitivo",
358
+ "La última clase del profesor más longevo de Oxford revela su método de memorización",
359
+ "El manuscrito perdido de un monje escriba sale a la luz tras 80 años en el Vaticano",
360
+
361
+ # Único + Ultra-específico (Para diferenciación basada en datos)
362
+ "Un grupo de 1457 abuelas italianas entrena una IA para reconocer pasta al dente con 99.7% de precisión",
363
+ "La técnica de un bibliotecario jubilado cataloga 47893 libros en 73 días usando fichas de colores",
364
+ "Un taxista noruego fotografía 12437 auroras boreales usando un iPhone 6 y tres filtros caseros",
365
+
366
+ # Útil + Urgente (Para motivar acción inmediata)
367
+ "Aprende a crear tu huerto urbano antes de que suban los precios de las verduras",
368
+ "Asegura tu plaza en el programa de ahorro energético antes del aumento de tarifas",
369
+ "Registra tu marca personal mientras el dominio premium sigue disponible",
370
+
371
+ # Útil + Único + Ultra-específico (Para establecer autoridad y credibilidad)
372
+ "La técnica de un cartero rural ayuda a 1893 personas a organizar su tiempo usando solo 17 minutos cada mañana",
373
+ "Un bibliotecario retirado genera 12437 euros vendiendo libros antiguos por menos de 3 euros cada uno",
374
+ "Una abuela italiana entrena algoritmos que reducen el tiempo de cocción un 82% manteniendo el sabor tradicional",
375
+
376
+ # Útil + Urgente + Ultra-específico (Para ofertas con beneficios medibles)
377
+ "Aprende 478 palabras en japonés en 21 días antes del aumento de precio del programa",
378
+ "Automatiza 95% de tu contabilidad en 7 días previo a la nueva normativa fiscal",
379
+ "Genera 7 fuentes de ingresos pasivos en 30 días antes del cambio en las regulaciones",
380
+
381
+ # Único + Urgente + Ultra-específico (Para lanzamientos exclusivos)
382
+ "El sistema de un monje copista digitaliza 7345 manuscritos en 31 días últimas plazas disponibles",
383
+ "La fórmula de un taxista fotografía 893 auroras boreales perfectas registro exclusivo esta semana",
384
+ "El método de un bibliotecario jubilado organiza 47893 archivos en 73 días acceso limitado",
385
+
386
+ # Útil + Único + Urgente (Para ofertas transformadoras)
387
+ "La técnica de un cartero rural transforma tu productividad antes del fin de semana",
388
+ "El sistema de una abuela italiana revoluciona tu forma de cocinar registro beta por 24 horas",
389
+ "El método de un bibliotecario maximiza tu capacidad de aprendizaje plazas limitadas"
390
+ ],
391
+ "consejos_uso": [
392
+ "Asegura que cada elemento U refuerce a los demás",
393
+ "Mantén un equilibrio entre urgencia y credibilidad",
394
+ "Usa datos específicos para aumentar la confianza",
395
+ "Adapta el orden de los elementos según tu audiencia",
396
+ "Evita exageraciones que puedan generar desconfianza",
397
+ "Combina los elementos de forma natural y fluida",
398
+ "Asegúrate de que cada elemento añada valor real",
399
+ "Prueba diferentes combinaciones para encontrar las más efectivas"
400
+ ]
401
+ }
402
+ }
gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
prompts.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Incluir las instrucciones del sistema en el prompt principal
2
+ system_prompt = """Eres un copywriter experto de clase mundial, con experiencia en crear beneficios que conectan emocionalmente y abordan los deseos, problemas y motivaciones de la audiencia objetivo.
3
+
4
+ OBJETIVO:
5
+ - Generar bullets de beneficios convincentes y específicos en español
6
+ - Conectar emocionalmente con la audiencia
7
+ - Abordar deseos, problemas y motivaciones reales
8
+ - Mantener un lenguaje natural y conversacional
9
+ - Orientar cada beneficio a la acción
10
+
11
+ REGLAS DE FORMATO:
12
+ - Cada beneficio debe comenzar con "• "
13
+ - Un beneficio por línea
14
+ - Sin números al inicio
15
+ - Sin explicaciones ni categorías
16
+ - Añadir un salto de línea entre cada beneficio
17
+ - Nunca incluir símbolos : en los bullets
18
+ - Cada beneficio debe ser una frase completa y concisa
19
+
20
+ ESTRUCTURA DE CADA BENEFICIO:
21
+ - Debe ser relevante para la audiencia objetivo
22
+ - Debe mostrar un resultado específico
23
+ - Debe incluir un elemento emocional
24
+ - Debe eliminar una objeción o dolor
25
+ - Debe inspirar acción inmediata
26
+
27
+ EJEMPLO DE FORMATO:
28
+ • Transforma tu negocio con estrategias probadas que duplican tus ingresos en 90 días, sin sacrificar tu tiempo en familia.
29
+
30
+ • Domina las técnicas más efectivas para conquistar tu mercado, mientras mantienes el equilibrio entre trabajo y vida personal.
31
+
32
+ • Implementa sistemas automatizados que hacen crecer tu empresa incluso mientras duermes, eliminando la necesidad de trabajar más horas.
33
+
34
+ IMPORTANTE:
35
+ - Cada beneficio debe ser único y específico
36
+ - Evitar repeticiones y generalidades
37
+ - Mantener un tono persuasivo pero honesto
38
+ - Adaptar el lenguaje al nivel de comprensión de la audiencia
39
+ - Enfocarse en resultados tangibles y medibles"""
40
+
41
+ # Crear un mensaje para el modelo, destacando la audiencia, el producto, la fórmula seleccionada y los ejemplos
42
+ benefits_instruction = (
43
+ f"{system_prompt}\n\n"
44
+ f"Tu tarea es crear {number_of_benefits} beneficios irresistibles diseñados para {target_audience}. "
45
+ f"El objetivo es mostrar cómo {product} puede transformar la vida del lector, conectando de forma natural y emocional. "
46
+ f"Evita usar menciones literales o repetitivas, y destaca soluciones concretas, mostrando cómo el producto elimina obstáculos o satisface deseos reales. "
47
+ f"Usa la fórmula seleccionada como guía:\n\n{selected_formula['description']}\n\n"
48
+ f"Inspírate en estos ejemplos:\n"
49
+ f"- {selected_formula['examples'][0]}\n"
50
+ f"- {selected_formula['examples'][1]}\n"
51
+ f"- {selected_formula['examples'][2]}\n\n"
52
+ f"Tu objetivo es inspirar deseo y acción, evitando explicaciones o categorías en la respuesta."
53
+ )
54
+ def create_instruction(number_of_benefits, target_audience, product, selected_formula):
55
+ return (
56
+ f"{system_prompt}\n\n"
57
+ f"Tu tarea es crear {number_of_benefits} beneficios irresistibles diseñados para {target_audience}. "
58
+ f"El objetivo es mostrar cómo {product} puede transformar la vida del lector, conectando de forma natural y emocional. "
59
+ f"Evita usar menciones literales o repetitivas, y destaca soluciones concretas, mostrando cómo el producto elimina obstáculos o satisface deseos reales. "
60
+ f"Usa la fórmula seleccionada como guía:\n\n{selected_formula['description']}\n\n"
61
+ f"Inspírate en estos ejemplos:\n"
62
+ f"- {selected_formula['examples'][0]}\n"
63
+ f"- {selected_formula['examples'][1]}\n"
64
+ f"- {selected_formula['examples'][2]}\n\n"
65
+ f"Tu objetivo es inspirar deseo y acción, evitando explicaciones o categorías en la respuesta."
66
+ )
requirements.txt CHANGED
@@ -1,3 +1,8 @@
1
- streamlit
2
- google-generativeai
3
- python-dotenv
 
 
 
 
 
 
1
+ streamlit
2
+ google-generativeai
3
+ python-dotenv
4
+ langchain
5
+ PyPDF2
6
+ chromadb
7
+ pdf2image
8
+ faiss-cpu
style.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Custom CSS styles for the application
2
+ styles = {
3
+ "main_layout": """
4
+ /* Reducir espacio superior */
5
+ .block-container {
6
+ padding-top: 1rem;
7
+ padding-bottom: 5rem;
8
+ }
9
+
10
+ /* Ajustar espaciado del título */
11
+ h1 {
12
+ margin-top: 0rem;
13
+ padding-top: 1rem;
14
+ }
15
+
16
+ /* Ajustar espaciado del subtítulo */
17
+ h4 {
18
+ margin-top: 0.5rem;
19
+ padding-top: 0rem;
20
+ }
21
+ """,
22
+
23
+ "button": """
24
+ div.stButton > button {
25
+ background-color: #FFCC00;
26
+ color: black;
27
+ width: 90%;
28
+ height: 60px;
29
+ font-weight: bold;
30
+ font-size: 22px;
31
+ text-transform: uppercase;
32
+ border: 1px solid #000000;
33
+ border-radius: 8px;
34
+ display: block;
35
+ margin: 0 auto;
36
+ }
37
+ div.stButton > button:hover {
38
+ background-color: #FFD700;
39
+ color: black;
40
+ }
41
+ """
42
+ }