Spaces:
Sleeping
Sleeping
Upload 14 files
Browse files- README.md +2 -2
- app.py +106 -11
- generator_bullets.py +579 -0
- headline_generator.py +444 -308
README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
---
|
2 |
license: afl-3.0
|
3 |
-
title:
|
4 |
sdk: streamlit
|
5 |
emoji: 🏆
|
6 |
colorFrom: red
|
7 |
colorTo: yellow
|
8 |
pinned: true
|
9 |
-
sdk_version: 1.
|
10 |
short_description: Transform your audience's thoughts into persuasive bullets
|
11 |
---
|
|
|
1 |
---
|
2 |
license: afl-3.0
|
3 |
+
title: Bullet_Generator 2G
|
4 |
sdk: streamlit
|
5 |
emoji: 🏆
|
6 |
colorFrom: red
|
7 |
colorTo: yellow
|
8 |
pinned: true
|
9 |
+
sdk_version: 1.42.2
|
10 |
short_description: Transform your audience's thoughts into persuasive bullets
|
11 |
---
|
app.py
CHANGED
@@ -14,6 +14,7 @@ import PyPDF2
|
|
14 |
import docx
|
15 |
from PIL import Image
|
16 |
import io
|
|
|
17 |
|
18 |
# Cargar las variables de entorno
|
19 |
load_dotenv()
|
@@ -30,19 +31,93 @@ def get_model(temperature):
|
|
30 |
return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
|
31 |
|
32 |
# Function to generate Facebook ads
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
if not target_audience or not product:
|
35 |
return "Por favor, completa todos los campos requeridos."
|
36 |
|
|
|
|
|
|
|
|
|
37 |
# Enfatizar el tema de la historia si se proporciona
|
38 |
emphasized_story_prompt = story_prompt
|
39 |
if story_prompt and story_prompt.strip():
|
40 |
-
# Añadir énfasis al tema para que el modelo le dé más importancia
|
41 |
emphasized_story_prompt = story_prompt.strip()
|
42 |
|
43 |
model = get_model(temperature)
|
44 |
|
45 |
-
# Crear la instrucción base
|
46 |
ad_instruction = create_fb_ad_instruction(
|
47 |
target_audience,
|
48 |
product,
|
@@ -50,8 +125,9 @@ def generate_fb_ad(target_audience, product, temperature, selected_formula, sele
|
|
50 |
selected_angle,
|
51 |
selected_persona,
|
52 |
ad_objective,
|
53 |
-
language="español",
|
54 |
-
story_prompt=emphasized_story_prompt
|
|
|
55 |
)
|
56 |
|
57 |
# Si hay contenido de archivo, añadirlo a la instrucción
|
@@ -61,7 +137,6 @@ def generate_fb_ad(target_audience, product, temperature, selected_formula, sele
|
|
61 |
# Si hay un tema específico, ajustar la temperatura para mayor coherencia
|
62 |
effective_temperature = temperature
|
63 |
if story_prompt and story_prompt.strip():
|
64 |
-
# Reducir ligeramente la temperatura para mantener más enfoque en el tema
|
65 |
effective_temperature = max(0.1, temperature * 0.9)
|
66 |
|
67 |
# Generar el contenido con o sin imagen
|
@@ -225,6 +300,18 @@ if submit_ad:
|
|
225 |
# Mostrar el spinner en la segunda columna
|
226 |
with col2:
|
227 |
with st.spinner('Generando anuncio...'):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
generated_ad = generate_fb_ad(
|
229 |
ad_target_audience,
|
230 |
ad_product,
|
@@ -232,11 +319,12 @@ if submit_ad:
|
|
232 |
ad_formula,
|
233 |
emotional_angle,
|
234 |
ad_persona,
|
235 |
-
input_prompt,
|
236 |
selected_objective,
|
237 |
file_content if 'file_content' in locals() and file_content else "",
|
238 |
image_parts if 'image_parts' in locals() and is_image else None,
|
239 |
-
50000
|
|
|
240 |
)
|
241 |
|
242 |
if not isinstance(generated_ad, str):
|
@@ -245,9 +333,10 @@ if submit_ad:
|
|
245 |
# Store the generated ad in session state to preserve it
|
246 |
st.session_state.current_ad = generated_ad
|
247 |
|
248 |
-
# Display the ad
|
249 |
st.markdown(f"""
|
250 |
<div style="{styles['results_container']}">
|
|
|
251 |
<h3>Anuncio Generado:</h3>
|
252 |
<p>{generated_ad}</p>
|
253 |
</div>
|
@@ -260,10 +349,13 @@ if submit_ad:
|
|
260 |
import datetime
|
261 |
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
262 |
|
|
|
|
|
|
|
263 |
# Botón de descarga with timestamp in filename
|
264 |
st.download_button(
|
265 |
label="DESCARGAR ANUNCIO",
|
266 |
-
data=
|
267 |
file_name=f"anuncio_facebook_{timestamp}.txt",
|
268 |
mime="text/plain"
|
269 |
)
|
@@ -296,4 +388,7 @@ elif 'current_ad' in st.session_state:
|
|
296 |
|
297 |
# Agregar firma del autor al final de la página
|
298 |
st.markdown('---')
|
299 |
-
st.markdown('Made with ❤️ by Jesús Cabrera')
|
|
|
|
|
|
|
|
14 |
import docx
|
15 |
from PIL import Image
|
16 |
import io
|
17 |
+
from headline_generator import generate_headlines_with_model
|
18 |
|
19 |
# Cargar las variables de entorno
|
20 |
load_dotenv()
|
|
|
31 |
return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
|
32 |
|
33 |
# Function to generate Facebook ads
|
34 |
+
# Import necessary modules at the top
|
35 |
+
from headline_formulas import headline_formulas
|
36 |
+
import random
|
37 |
+
|
38 |
+
# Function to generate headlines and select one randomly
|
39 |
+
def generate_and_select_headline(target_audience, product, temperature, selected_angle):
|
40 |
+
# Get the model
|
41 |
+
model = get_model(temperature)
|
42 |
+
|
43 |
+
# Select a random formula for the headline
|
44 |
+
formula_name = random.choice(list(headline_formulas.keys()))
|
45 |
+
selected_formula = headline_formulas[formula_name]
|
46 |
+
|
47 |
+
# Generate 3 headlines
|
48 |
+
headlines = generate_headlines_with_model(
|
49 |
+
model=model,
|
50 |
+
target_audience=target_audience,
|
51 |
+
product=product,
|
52 |
+
selected_formula=selected_formula,
|
53 |
+
selected_angle=selected_angle,
|
54 |
+
number_of_headlines=3
|
55 |
+
)
|
56 |
+
|
57 |
+
# Parse the headlines (assuming they come in a numbered format)
|
58 |
+
headline_list = []
|
59 |
+
for line in headlines.strip().split('\n'):
|
60 |
+
if line.strip() and line[0].isdigit() and '.' in line:
|
61 |
+
# Extract the headline text after the number and period
|
62 |
+
headline_text = line.split('.', 1)[1].strip()
|
63 |
+
headline_list.append(headline_text)
|
64 |
+
|
65 |
+
# If we couldn't parse any headlines, return a default one
|
66 |
+
if not headline_list:
|
67 |
+
return f"Descubre cómo {product} puede transformar tu vida como {target_audience}"
|
68 |
+
|
69 |
+
# Select a random headline from the generated ones
|
70 |
+
selected_headline = random.choice(headline_list)
|
71 |
+
return selected_headline
|
72 |
+
|
73 |
+
def generate_headline(target_audience=None, product=None, temperature=1.0, angle=None):
|
74 |
+
# Check if UI variables exist, otherwise use parameters
|
75 |
+
try:
|
76 |
+
target_audience = target_audience or ad_target_audience
|
77 |
+
product = product or ad_product
|
78 |
+
temperature = temperature or ad_temperature
|
79 |
+
angle = angle or emotional_angle_key
|
80 |
+
except NameError:
|
81 |
+
# If UI variables don't exist yet, use the provided parameters
|
82 |
+
pass
|
83 |
+
|
84 |
+
# Obtener el modelo usando la función existente
|
85 |
+
model = get_model(temperature)
|
86 |
+
|
87 |
+
# Remove duplicate imports and use the ones at the top of the file
|
88 |
+
formula_name = random.choice(list(headline_formulas.keys()))
|
89 |
+
selected_formula = headline_formulas[formula_name]
|
90 |
+
|
91 |
+
# Generar el titular usando el modelo ya inicializado
|
92 |
+
headline = generate_headlines_with_model(
|
93 |
+
model=model,
|
94 |
+
target_audience=target_audience,
|
95 |
+
product=product,
|
96 |
+
selected_formula=selected_formula,
|
97 |
+
selected_angle=angle
|
98 |
+
)
|
99 |
+
|
100 |
+
return headline
|
101 |
+
|
102 |
+
# Modify the generate_fb_ad function to accept a headline parameter
|
103 |
+
def generate_fb_ad(target_audience, product, temperature, selected_formula, selected_angle,
|
104 |
+
selected_persona, story_prompt="", ad_objective=None, file_content="",
|
105 |
+
image_parts=None, max_file_chars=50000, headline=None):
|
106 |
if not target_audience or not product:
|
107 |
return "Por favor, completa todos los campos requeridos."
|
108 |
|
109 |
+
# Generate a headline if none is provided
|
110 |
+
if not headline:
|
111 |
+
headline = generate_and_select_headline(target_audience, product, temperature, selected_angle)
|
112 |
+
|
113 |
# Enfatizar el tema de la historia si se proporciona
|
114 |
emphasized_story_prompt = story_prompt
|
115 |
if story_prompt and story_prompt.strip():
|
|
|
116 |
emphasized_story_prompt = story_prompt.strip()
|
117 |
|
118 |
model = get_model(temperature)
|
119 |
|
120 |
+
# Crear la instrucción base, ahora incluyendo el titular
|
121 |
ad_instruction = create_fb_ad_instruction(
|
122 |
target_audience,
|
123 |
product,
|
|
|
125 |
selected_angle,
|
126 |
selected_persona,
|
127 |
ad_objective,
|
128 |
+
language="español",
|
129 |
+
story_prompt=emphasized_story_prompt,
|
130 |
+
headline=headline # Pass the headline to the instruction creator
|
131 |
)
|
132 |
|
133 |
# Si hay contenido de archivo, añadirlo a la instrucción
|
|
|
137 |
# Si hay un tema específico, ajustar la temperatura para mayor coherencia
|
138 |
effective_temperature = temperature
|
139 |
if story_prompt and story_prompt.strip():
|
|
|
140 |
effective_temperature = max(0.1, temperature * 0.9)
|
141 |
|
142 |
# Generar el contenido con o sin imagen
|
|
|
300 |
# Mostrar el spinner en la segunda columna
|
301 |
with col2:
|
302 |
with st.spinner('Generando anuncio...'):
|
303 |
+
# Generate a headline first
|
304 |
+
headline = generate_and_select_headline(
|
305 |
+
ad_target_audience,
|
306 |
+
ad_product,
|
307 |
+
ad_temperature,
|
308 |
+
emotional_angle
|
309 |
+
)
|
310 |
+
|
311 |
+
# Store the headline in session state
|
312 |
+
st.session_state.current_headline = headline
|
313 |
+
|
314 |
+
# Generate the ad with the headline
|
315 |
generated_ad = generate_fb_ad(
|
316 |
ad_target_audience,
|
317 |
ad_product,
|
|
|
319 |
ad_formula,
|
320 |
emotional_angle,
|
321 |
ad_persona,
|
322 |
+
input_prompt,
|
323 |
selected_objective,
|
324 |
file_content if 'file_content' in locals() and file_content else "",
|
325 |
image_parts if 'image_parts' in locals() and is_image else None,
|
326 |
+
50000,
|
327 |
+
headline # Pass the generated headline
|
328 |
)
|
329 |
|
330 |
if not isinstance(generated_ad, str):
|
|
|
333 |
# Store the generated ad in session state to preserve it
|
334 |
st.session_state.current_ad = generated_ad
|
335 |
|
336 |
+
# Display the headline and ad
|
337 |
st.markdown(f"""
|
338 |
<div style="{styles['results_container']}">
|
339 |
+
<h2>{headline}</h2>
|
340 |
<h3>Anuncio Generado:</h3>
|
341 |
<p>{generated_ad}</p>
|
342 |
</div>
|
|
|
349 |
import datetime
|
350 |
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
351 |
|
352 |
+
# Prepare content with headline for download
|
353 |
+
download_content = f"TITULAR: {headline}\n\n{generated_ad}"
|
354 |
+
|
355 |
# Botón de descarga with timestamp in filename
|
356 |
st.download_button(
|
357 |
label="DESCARGAR ANUNCIO",
|
358 |
+
data=download_content,
|
359 |
file_name=f"anuncio_facebook_{timestamp}.txt",
|
360 |
mime="text/plain"
|
361 |
)
|
|
|
388 |
|
389 |
# Agregar firma del autor al final de la página
|
390 |
st.markdown('---')
|
391 |
+
st.markdown('Made with ❤️ by Jesús Cabrera')
|
392 |
+
|
393 |
+
# Ejemplo de uso dentro de una función existente o en un nuevo endpoint
|
394 |
+
# Move this function up to be with the other utility functions
|
generator_bullets.py
ADDED
@@ -0,0 +1,579 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import random
|
2 |
+
|
3 |
+
def create_bullet_instruction(product_service=None, uploaded_content=None, target_audience=None, skills=None, selected_formula_name=None):
|
4 |
+
"""
|
5 |
+
Creates the instruction for generating benefit bullets.
|
6 |
+
The model will randomly choose between different bullet formulas.
|
7 |
+
|
8 |
+
Args:
|
9 |
+
target_audience: Description of the target audience
|
10 |
+
product_service: Kind of product or service
|
11 |
+
uploaded_content: Content from uploaded files (if any)
|
12 |
+
skills: User's skills and expertise
|
13 |
+
selected_formula_name: Name of the formula selected for the main offer
|
14 |
+
|
15 |
+
Returns:
|
16 |
+
str: The complete instruction for generating bullets
|
17 |
+
"""
|
18 |
+
# Base instruction that applies to all formulas
|
19 |
+
# Modify the FORMAT RULES section in the base_instruction
|
20 |
+
# Modify the introduction options for bullets
|
21 |
+
base_instruction = """
|
22 |
+
IMPORTANT: After creating the main offer, add a section with 5 powerful benefit bullets that reinforce the promise.
|
23 |
+
|
24 |
+
Start the bullets section with one of these creative introductions and a space before the first bullet:
|
25 |
+
|
26 |
+
"**5 Cambios poderosos que notorás:**" or
|
27 |
+
"**Lo que descurirás en este viaje:**" or
|
28 |
+
"**Tu nueva realidad incluye:**"
|
29 |
+
|
30 |
+
For the benefit bullets section:
|
31 |
+
|
32 |
+
You are a world-class expert copywriter, experienced in creating benefits that emotionally connect and address the desires, problems, and motivations of the target audience.
|
33 |
+
|
34 |
+
OBJECTIVE:
|
35 |
+
- Generate 5 convincing and specific benefit bullets in Spanish
|
36 |
+
- Connect emotionally with the audience
|
37 |
+
- Address real desires, problems, and motivations
|
38 |
+
- Maintain natural and conversational language
|
39 |
+
- Orient each benefit towards action
|
40 |
+
|
41 |
+
FORMAT RULES (CRITICAL - MUST FOLLOW EXACTLY):
|
42 |
+
- Start the section with "**BENEFICIOS:**" in bold
|
43 |
+
- Each benefit must start with "• " (bullet point followed by a space)
|
44 |
+
- The first verb or action phrase of each bullet must be in bold using "**bold text**"
|
45 |
+
- One benefit per line with exactly one empty line between bullets
|
46 |
+
- Never include colons (:) in bullets
|
47 |
+
- Never use exclamation marks (!) in any bullet
|
48 |
+
- Each benefit must be a complete and concise phrase
|
49 |
+
- Do not use any emojis in the bullets
|
50 |
+
- Use natural, conversational language
|
51 |
+
- ALL bullets must follow exactly the same formatting pattern
|
52 |
+
- The spacing between bullets must be exactly the same (one empty line)
|
53 |
+
|
54 |
+
EXAMPLE FORMAT:
|
55 |
+
**BENEFICIOS:**
|
56 |
+
|
57 |
+
• **Participa con confianza** en reuniones internacionales y expresa tus ideas con fluidez en tan solo 4 semanas, sin depender de traductores.
|
58 |
+
|
59 |
+
• **Supera el miedo** a cometer errores y proyecta una imagen profesional y segura al comunicarte en inglés, gracias a nuestras sesiones de práctica intensiva.
|
60 |
+
|
61 |
+
• **Accede a oportunidades** de ascenso y aumenta tu salario hasta en un 30% al dominar el inglés para negocios, respaldado por nuestra garantía de resultados.
|
62 |
+
|
63 |
+
AVATAR ANALYSIS INSTRUCTIONS:
|
64 |
+
|
65 |
+
STEP 1: ANALYZE THE AVATAR DEEPLY
|
66 |
+
- Identify their specific pains, fears, objections, limiting beliefs, and problems
|
67 |
+
- Look for emotional triggers that might prevent them from taking action
|
68 |
+
- Determine what keeps them awake at night regarding this problem
|
69 |
+
- Identify what they've tried before that hasn't worked
|
70 |
+
- Understand their timeline expectations and what might make them hesitate
|
71 |
+
- EXTRACT SPECIFIC DETAILS from the avatar description AND uploaded content
|
72 |
+
|
73 |
+
STEP 2: IDENTIFY CORE PROBLEMS AND DESIRES
|
74 |
+
- List the 5 most pressing problems this avatar faces
|
75 |
+
- Determine which problems are most urgent vs. most important
|
76 |
+
- Identify the emotional impact of each problem on their daily life
|
77 |
+
- Discover what they truly desire as the ultimate outcome
|
78 |
+
- Understand what specific results would make them feel successful
|
79 |
+
|
80 |
+
STEP 3: MAP SOLUTIONS TO PROBLEMS
|
81 |
+
- For each core problem, identify a specific solution your product/service provides
|
82 |
+
- Determine exactly how your solution addresses their pain points
|
83 |
+
- Calculate specific metrics that demonstrate the effectiveness of each solution
|
84 |
+
- Identify the timeframe in which they can expect results
|
85 |
+
- Connect each solution to their emotional desires and aspirations
|
86 |
+
|
87 |
+
STEP 4: CREATE BENEFIT BULLETS THAT TRANSFORM PROBLEMS INTO RESULTS
|
88 |
+
- Craft each bullet to directly address one specific problem identified
|
89 |
+
- Include exact numbers, percentages, or timeframes for measurable outcomes
|
90 |
+
- Incorporate emotional triggers that resonate with their deepest desires
|
91 |
+
- Add proof elements that overcome their specific objections
|
92 |
+
- Ensure each bullet provides a clear, tangible solution they can visualize
|
93 |
+
|
94 |
+
FORMAT RULES:
|
95 |
+
- Each benefit must start with "• " (bullet point followed by a space)
|
96 |
+
- Make the first part of each bullet (main concept) in bold using "**bold text**" format
|
97 |
+
- One benefit per line
|
98 |
+
- Add exactly 1.2em of spacing between bullets (add an empty line between each bullet)
|
99 |
+
- No explanations or categories
|
100 |
+
- Never include : symbols in bullets
|
101 |
+
- Never use exclamation marks (!) in any bullet
|
102 |
+
- Each benefit must be a complete and concise phrase
|
103 |
+
- Do not use any emojis in the bullets
|
104 |
+
- Use natural, conversational language (avoid formal or technical jargon)
|
105 |
+
- Maintain consistent formatting across all bullets
|
106 |
+
|
107 |
+
EXAMPLE FORMAT:
|
108 |
+
• **Desbloquea tu fluidez en inglés** y participa con confianza en reuniones de alto nivel desde la primera semana.
|
109 |
+
|
110 |
+
• **Supera el miedo a cometer errores** y proyecta una imagen profesional y segura al comunicarte en inglés.
|
111 |
+
|
112 |
+
IMPORTANT:
|
113 |
+
- Each benefit must be ultra-specific with concrete, measurable outcomes
|
114 |
+
- NEVER use generic phrases like "mejorar tu vida" or "aumentar tu productividad"
|
115 |
+
- Always include specific numbers, percentages, or exact timeframes
|
116 |
+
- Each bullet must solve a very specific problem with a detailed solution
|
117 |
+
- Include at least one bullet that directly counters a common objection with evidence
|
118 |
+
- Each bullet should contain a clear call to action with a specific next step
|
119 |
+
- Avoid all generalizations - be precise about exactly what the user will get
|
120 |
+
- Maintain a persuasive but honest tone with verifiable claims
|
121 |
+
- Focus on tangible and measurable results that can be verified
|
122 |
+
- Ensure each bullet addresses a different aspect of the offer
|
123 |
+
- Write in a natural, conversational tone as if speaking directly to the reader
|
124 |
+
- Never use exclamation marks in the bullets
|
125 |
+
"""
|
126 |
+
|
127 |
+
# Add guidance based on available information
|
128 |
+
guidance = ""
|
129 |
+
|
130 |
+
# Check different combinations of available information
|
131 |
+
if not target_audience and not product_service and not uploaded_content:
|
132 |
+
return """
|
133 |
+
ADVERTENCIA: No se ha proporcionado ninguna información para generar los bullets.
|
134 |
+
|
135 |
+
Para obtener bullets más efectivos y personalizados, por favor proporciona al menos uno de los siguientes:
|
136 |
+
- Descripción del público objetivo (avatar)
|
137 |
+
- Nombre del producto o servicio
|
138 |
+
- Contenido adicional relevante
|
139 |
+
|
140 |
+
Sin esta información, los bullets generados serán genéricos y posiblemente menos efectivos para tu oferta específica.
|
141 |
+
"""
|
142 |
+
elif not target_audience and not product_service and uploaded_content:
|
143 |
+
# Only uploaded content provided
|
144 |
+
guidance = """
|
145 |
+
NOTA IMPORTANTE: Solo se ha proporcionado contenido adicional sin detalles específicos del público objetivo o producto.
|
146 |
+
Analiza cuidadosamente el contenido subido para:
|
147 |
+
- Identificar el público objetivo probable a partir del contexto
|
148 |
+
- Determinar el producto/servicio que probablemente se está ofreciendo
|
149 |
+
- Extraer puntos de dolor, objeciones y necesidades mencionadas en el contenido
|
150 |
+
- Crear beneficios que aborden específicamente los problemas identificados en el contenido
|
151 |
+
"""
|
152 |
+
elif target_audience and not product_service and not uploaded_content:
|
153 |
+
# Only avatar description provided
|
154 |
+
guidance = """
|
155 |
+
NOTA IMPORTANTE: Solo se ha proporcionado información del público objetivo, sin detalles del producto ni contenido adicional.
|
156 |
+
Enfócate en crear beneficios que:
|
157 |
+
- Aborden los puntos de dolor específicos mencionados en la descripción del avatar
|
158 |
+
- Resuelvan las objeciones comunes que este público suele tener
|
159 |
+
- Proporcionen soluciones a los problemas específicos de este público
|
160 |
+
- Conecten emocionalmente con las motivaciones de este avatar
|
161 |
+
"""
|
162 |
+
elif product_service and not target_audience and not uploaded_content:
|
163 |
+
# Only product name provided
|
164 |
+
guidance = """
|
165 |
+
NOTA IMPORTANTE: Solo se ha proporcionado información del producto, sin detalles del público objetivo ni contenido adicional.
|
166 |
+
Enfócate en crear beneficios que:
|
167 |
+
- Destaquen las características únicas de este producto específico
|
168 |
+
- Aborden objeciones comunes relacionadas con este tipo de producto
|
169 |
+
- Muestren resultados medibles que este producto puede proporcionar
|
170 |
+
- Diferencien este producto de alternativas genéricas
|
171 |
+
"""
|
172 |
+
elif target_audience and product_service and not uploaded_content:
|
173 |
+
# Avatar and product provided, no uploaded content
|
174 |
+
guidance = """
|
175 |
+
NOTA IMPORTANTE: Se ha proporcionado información tanto del público objetivo como del producto, pero no hay contenido adicional.
|
176 |
+
Crea beneficios altamente dirigidos que:
|
177 |
+
- Conecten las características específicas del producto con las necesidades del avatar
|
178 |
+
- Aborden las objeciones más probables que este público tendría sobre este producto
|
179 |
+
- Muestren cómo este producto específico resuelve los problemas concretos de este avatar
|
180 |
+
- Destaquen los resultados medibles que este público específico obtendrá con este producto
|
181 |
+
"""
|
182 |
+
elif target_audience and uploaded_content and not product_service:
|
183 |
+
# Avatar and uploaded content provided, no product
|
184 |
+
guidance = """
|
185 |
+
NOTA IMPORTANTE: Se ha proporcionado información del público objetivo y contenido adicional, pero no hay detalles específicos del producto.
|
186 |
+
Analiza ambas fuentes para:
|
187 |
+
- Inferir el producto/servicio probable del contexto
|
188 |
+
- Identificar puntos de dolor específicos mencionados tanto en la descripción del avatar como en el contenido subido
|
189 |
+
- Crear beneficios que aborden las necesidades y objeciones más prominentes
|
190 |
+
- Asegurar que los beneficios sean relevantes tanto para el avatar como para el contexto del contenido
|
191 |
+
"""
|
192 |
+
elif product_service and uploaded_content and not target_audience:
|
193 |
+
# Product and uploaded content provided, no avatar
|
194 |
+
guidance = """
|
195 |
+
NOTA IMPORTANTE: Se ha proporcionado información del producto y contenido adicional, pero no hay detalles del público objetivo.
|
196 |
+
Analiza ambas fuentes para:
|
197 |
+
- Inferir el público objetivo probable del contexto
|
198 |
+
- Identificar cómo el producto aborda las necesidades mencionadas en el contenido subido
|
199 |
+
- Crear beneficios que destaquen cómo el producto resuelve problemas específicos mencionados en el contenido
|
200 |
+
- Enfocarte en resultados medibles que el producto puede proporcionar según el contexto
|
201 |
+
"""
|
202 |
+
elif target_audience and product_service and uploaded_content:
|
203 |
+
# All information provided
|
204 |
+
guidance = """
|
205 |
+
NOTA IMPORTANTE: Se ha proporcionado información completa sobre el público objetivo, producto y contenido adicional.
|
206 |
+
Utiliza todas las fuentes para:
|
207 |
+
- Crear beneficios ultra-específicos que conecten perfectamente el producto con las necesidades del avatar
|
208 |
+
- Extraer detalles concretos del contenido subido para hacer los beneficios más relevantes y personalizados
|
209 |
+
- Abordar objeciones específicas mencionadas en cualquiera de las fuentes
|
210 |
+
- Crear beneficios que destaquen exactamente cómo este producto resuelve los problemas concretos de este avatar
|
211 |
+
"""
|
212 |
+
|
213 |
+
# Add information about available inputs
|
214 |
+
input_information = f"""
|
215 |
+
|
216 |
+
AVAILABLE INFORMATION FOR ANALYSIS:
|
217 |
+
|
218 |
+
1. TARGET AUDIENCE DESCRIPTION:
|
219 |
+
{target_audience if target_audience else "No specific target audience provided."}
|
220 |
+
|
221 |
+
2. PRODUCT/SERVICE NAME:
|
222 |
+
{product_service if product_service else "No specific product or service provided."}
|
223 |
+
|
224 |
+
3. UPLOADED CONTENT:
|
225 |
+
{uploaded_content if uploaded_content else "No additional content uploaded."}
|
226 |
+
|
227 |
+
4. SKILLS AND EXPERTISE:
|
228 |
+
{skills if skills else "No specific skills provided."}
|
229 |
+
|
230 |
+
{guidance}
|
231 |
+
|
232 |
+
IMPORTANT: Analyze ALL available information above to create bullets that specifically address the needs, desires, and objections of this audience for this specific product/service.
|
233 |
+
"""
|
234 |
+
|
235 |
+
# Rest of the function remains the same...
|
236 |
+
# Multiple formula instructions (unchanged)
|
237 |
+
# Add this as a new formula option in the formula_instructions section
|
238 |
+
formula_instructions = """
|
239 |
+
IMPORTANT: Choose ONE of the following bullet formulas at random and use it consistently for ALL 5 bullets:
|
240 |
+
|
241 |
+
FORMULA 1 - STANDARD BENEFIT:
|
242 |
+
- Must be relevant to a specific segment of your target audience
|
243 |
+
- Must show a specific result with exact numbers or percentages
|
244 |
+
- Must include a precise emotional element tied to a specific desire
|
245 |
+
- Must eliminate a specific objection with evidence
|
246 |
+
- Must inspire immediate action with a clear next step
|
247 |
+
|
248 |
+
EXAMPLE FORMAT FOR FORMULA 1:
|
249 |
+
•Transforma tu estrategia de email marketing con plantillas que aumentan la tasa de apertura un 37% en 14 días, incluso si nunca has escrito una campaña exitosa.
|
250 |
+
|
251 |
+
FORMULA 2 - 3 EN 1 (FEATURE + BENEFIT + MEANING):
|
252 |
+
Formula: [Feature + Benefit + Meaning]
|
253 |
+
|
254 |
+
This formula creates an instant connection by linking three key elements:
|
255 |
+
1. Feature: A specific, tangible characteristic of your offer
|
256 |
+
2. Benefit: The exact, measurable result it delivers
|
257 |
+
3. Meaning: The precise transformation in their life
|
258 |
+
|
259 |
+
Instructions for Creating Connection Bullets:
|
260 |
+
1. Identify Your Core Feature:
|
261 |
+
- What specific component makes your offer unique?
|
262 |
+
- What exact characteristic can be measured?
|
263 |
+
- What concrete element can they use immediately?
|
264 |
+
|
265 |
+
2. Transform into Benefits:
|
266 |
+
- What specific metric will improve?
|
267 |
+
- What exact problem will it solve?
|
268 |
+
- What measurable outcome will they achieve?
|
269 |
+
|
270 |
+
3. Add Deeper Meaning:
|
271 |
+
- How exactly will it transform their specific situation?
|
272 |
+
- What precise emotional impact will they experience?
|
273 |
+
- What concrete identity shift will occur?
|
274 |
+
|
275 |
+
Structure Formats:
|
276 |
+
1. "[Specific Feature] para que puedas [Measurable Benefit] con lo que [Concrete Meaning]"
|
277 |
+
2. "Con [Specific Feature] podrás [Measurable Benefit] permitiéndote [Concrete Meaning]"
|
278 |
+
3. "Gracias a [Specific Feature] lograrás [Measurable Benefit] haciendo que [Concrete Meaning]"
|
279 |
+
4. "Mediante [Specific Feature] conseguirás [Measurable Benefit] lo que significa [Concrete Meaning]"
|
280 |
+
5. "Usando [Specific Feature] alcanzarás [Measurable Benefit] transformando [Concrete Meaning]"
|
281 |
+
|
282 |
+
EXAMPLES FOR FORMULA 2:
|
283 |
+
• El Sistema de inmersión bilingüe de 21 días para que puedas mantener conversaciones de 15 minutos en inglés con lo que por fin dejarás de depender de traductores en tus reuniones internacionales.
|
284 |
+
|
285 |
+
• Con nuestro algoritmo de enfoque profundo de 3 pasos podrás completar proyectos en 4 horas en lugar de 8 permitiéndote disfrutar 20 horas adicionales semanales con tu familia.
|
286 |
+
|
287 |
+
• Gracias a nuestra tecnología de reprogramación mental de 28 días lograrás superar el miedo a hablar en público haciendo que te sientas seguro al presentar ante audiencias de hasta 500 personas.
|
288 |
+
|
289 |
+
• Mediante nuestro framework de creatividad de 5 fases conseguirás generar 10 ideas innovadoras por sesión lo que significa que nunca más perderás oportunidades de negocio por falta de propuestas.
|
290 |
+
|
291 |
+
• Usando nuestro sistema de automatización de tareas alcanzarás una reducción del 68% en tiempo administrativo transformando 15 horas semanales de trabajo tedioso en tiempo productivo para hacer crecer tu negocio.
|
292 |
+
|
293 |
+
FORMULA 3 - ANTI-PROCRASTINACIÓN (ACTION + RESULT + TIME):
|
294 |
+
Formula: [Action + Result + Time]
|
295 |
+
|
296 |
+
This formula uses a clear action followed by a direct result and the time in which that result will be achieved. You can modify the order of elements as needed.
|
297 |
+
|
298 |
+
Instructions:
|
299 |
+
1. Establish the clear action that the user must take (specific action with details)
|
300 |
+
2. Define the exact result with numbers/percentages that the user will obtain
|
301 |
+
3. Indicate the precise time period with exact days/weeks/months
|
302 |
+
|
303 |
+
Response Format (choose one for each bullet):
|
304 |
+
1. Action + Result + Time
|
305 |
+
2. Action + Time + Result
|
306 |
+
3. Result + Action + Time
|
307 |
+
4. Result + Time + Action
|
308 |
+
5. Time + Action + Result
|
309 |
+
6. Time + Result + Action
|
310 |
+
7. Result + Time + Action
|
311 |
+
|
312 |
+
EXAMPLES FOR FORMULA 3:
|
313 |
+
• Implementa nuestra estrategia de email marketing y aumenta tus ventas un 27% en los próximos 30 días, incluso si tu lista tiene menos de 500 suscriptores.
|
314 |
+
|
315 |
+
• Aplica las 3 técnicas de copywriting en tus próximos 5 posts y en 14 días verás un incremento del 42% en engagement, eliminando por completo los comentarios negativos.
|
316 |
+
|
317 |
+
• Tu tasa de conversión aumentará del 2% al 5.7% cuando implementes nuestro sistema de embudos en los próximos 21 días, sin necesidad de aumentar tu presupuesto publicitario.
|
318 |
+
|
319 |
+
• En 28 días exactos dominarás las 7 habilidades fundamentales de negociación aplicando nuestro método paso a paso, incluso si actualmente cedes en cada discusión.
|
320 |
+
|
321 |
+
• 8 semanas es todo lo que necesitas para transformar tu cuerpo con nuestro programa de 15 minutos diarios, reduciendo hasta 8 kg de grasa y aumentando tu energía un 65% desde la primera semana.
|
322 |
+
|
323 |
+
FORMULA 4 - NÚMERICA SUPREMA:
|
324 |
+
La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear bullets persuasivos e interesantes:
|
325 |
+
|
326 |
+
1. Artículos Plurales (Art):
|
327 |
+
- Los (para masculino plural)
|
328 |
+
- Las (para femenino plural)
|
329 |
+
- Dan naturalidad y autoridad al texto
|
330 |
+
|
331 |
+
2. Números (N):
|
332 |
+
- Específicos y creíbles (3, 5, 7, 10...)
|
333 |
+
- Crean estructura y expectativas claras
|
334 |
+
- Se combinan con artículos: "Los 5...", "Las 3..."
|
335 |
+
|
336 |
+
3. Adjetivo (A):
|
337 |
+
- Emocionales y descriptivos
|
338 |
+
- Conectan con deseos/miedos específicos
|
339 |
+
- Ejemplos: comprobados, científicos, revolucionarios
|
340 |
+
|
341 |
+
4. Palabra Clave (P):
|
342 |
+
- Término central del beneficio en plural
|
343 |
+
- Fácil de entender y recordar
|
344 |
+
- Ejemplos: métodos, estrategias, técnicas, secretos
|
345 |
+
|
346 |
+
5. Razón (R):
|
347 |
+
- Justifica el beneficio con datos concretos
|
348 |
+
- Añade credibilidad con evidencia específica
|
349 |
+
- Conecta con la motivación específica del lector
|
350 |
+
|
351 |
+
6. Promesa (P):
|
352 |
+
- Resultado específico y medible con números
|
353 |
+
- Timeframe realista con días/semanas exactas
|
354 |
+
- Beneficio final atractivo y verificable
|
355 |
+
|
356 |
+
EXAMPLES FOR FORMULA 4:
|
357 |
+
• Los 3 rituales científicamente probados para reducir tu estrés un 47% en 14 días, validados por la Universidad de Stanford.
|
358 |
+
|
359 |
+
• Las 5 rutinas efectivas para fortalecer tu core en solo 12 minutos diarios, eliminando el dolor lumbar en el 89% de los casos.
|
360 |
+
|
361 |
+
• Las 7 hábitos esenciales para aumentar tu productividad un 63%, permitiéndote completar en 4 horas lo que antes hacías en 8.
|
362 |
+
|
363 |
+
• Las 3 técnicas comprobadas para dormir 7 horas ininterrumpidas basadas en neurociencia, que han ayudado a 1,243 personas con insomnio crónico.
|
364 |
+
|
365 |
+
• Los 5 movimientos efectivos para fortalecer tu core sin equipamiento, que activan un 78% más de fibras musculares que los ejercicios tradicionales.
|
366 |
+
|
367 |
+
FORMULA 5 - EL TRIÁNGULO DE ORO:
|
368 |
+
Formula: [Benefit 1 + Benefit 2 + Great Promise]
|
369 |
+
|
370 |
+
This formula creates high-impact bullets by combining three key benefits persuasively:
|
371 |
+
1. Benefit 1: The first benefit that addresses an immediate client need
|
372 |
+
2. Benefit 2: An additional benefit that generates more value
|
373 |
+
3. Great Promise: The main or most impactful promise that closes the proposal
|
374 |
+
|
375 |
+
Instructions for Creating Powerful Bullets:
|
376 |
+
1. Identify Your Audience's Great Dream:
|
377 |
+
- What's their ultimate aspiration?
|
378 |
+
- What keeps them awake at night?
|
379 |
+
- What's their ideal scenario?
|
380 |
+
- What transformation do they deeply desire?
|
381 |
+
|
382 |
+
2. Structure Your Benefits:
|
383 |
+
- Write in a natural, conversational tone (like talking to a friend)
|
384 |
+
- Flow elements together without forced pauses or commas
|
385 |
+
- Make transitions smooth and invisible
|
386 |
+
- Keep the rhythm flowing from start to finish
|
387 |
+
|
388 |
+
3. Craft Your Benefits:
|
389 |
+
- Benefit 1: Hook them with their biggest pain point using casual language
|
390 |
+
- Benefit 2: Build momentum with an exciting complementary gain
|
391 |
+
- Great Promise: Deliver the knockout punch that makes them say "I need this!"
|
392 |
+
|
393 |
+
4. Tips for Maximum Impact:
|
394 |
+
- Write like you speak (but better)
|
395 |
+
- Avoid formal language or stiff transitions
|
396 |
+
- Make each element flow naturally into the next
|
397 |
+
- Create a rhythm that pulls the reader through
|
398 |
+
- Use conversational connectors instead of commas
|
399 |
+
- Read it aloud - if you stumble, rewrite it
|
400 |
+
- Make it so engaging they can't stop reading
|
401 |
+
- Keep the energy high from start to finish
|
402 |
+
|
403 |
+
Structure Formats:
|
404 |
+
1. "[benefit 1] [benefit 2] [great promise]"
|
405 |
+
2. "[benefit 2] [benefit 1] [great promise]"
|
406 |
+
3. "[great promise] [benefit 2] [benefit 1]"
|
407 |
+
4. "[great promise] [benefit 1] [benefit 2]"
|
408 |
+
5. "[benefit 1] [benefit 2] [great promise]"
|
409 |
+
6. "[benefit 1] + question + [benefit 2] + [great promise]"
|
410 |
+
7. "question + [benefit 1] + [benefit 2] + [great promise]"
|
411 |
+
8. "[benefit 1] + while + [benefit 2] + and also + [great promise]"
|
412 |
+
9. "Not only + [benefit 1] + but also + [benefit 2] + and best of all + [great promise]"
|
413 |
+
10. "Imagine + [benefit 1] + at the same time as + [benefit 2] + and finally + [great promise]"
|
414 |
+
11. "From + [benefit 1] + going through + [benefit 2] + until + [great promise]"
|
415 |
+
12. "First + [benefit 1] + then + [benefit 2] + and at the end + [great promise]"
|
416 |
+
13. "Start with + [benefit 1] + transform with + [benefit 2] + culminate with + [great promise]"
|
417 |
+
14. "Tired of the opposite of [benefit 1]? + Discover + [benefit 2] + and achieve + [great promise]"
|
418 |
+
15. "Finally + [benefit 1] + plus + [benefit 2] + and as a bonus + [great promise]"
|
419 |
+
|
420 |
+
EXAMPLES FOR FORMULA 5:
|
421 |
+
• Reduce tu estrés laboral en un 42% mientras aumentas tu productividad un 37% y transforma tu carrera profesional con nuestro sistema de gestión del tiempo basado en neurociencia aplicada.
|
422 |
+
|
423 |
+
• Domina 5 idiomas extranjeros mientras duermes 8 horas ininterrumpidas y activa el 89% de tu potencial cerebral con nuestro revolucionario programa de aprendizaje durante el sueño profundo.
|
424 |
+
|
425 |
+
• No solo eliminarás el dolor de espalda crónico en 14 días sino que también fortalecerás tu core un 78% y lo mejor de todo es que recuperarás la capacidad de disfrutar actividades que creías imposibles.
|
426 |
+
|
427 |
+
• ¿Cansado de perder tiempo en reuniones improductivas? Descubre cómo reducir tu jornada laboral 3 horas diarias y consigue resultados un 65% superiores con nuestro framework de productividad cuántica.
|
428 |
+
|
429 |
+
• Imagina generar 10 ideas innovadoras por día al mismo tiempo que reduces tu estrés un 47% y finalmente te conviertes en el referente creativo de tu industria con nuestro método de pensamiento lateral estructurado.
|
430 |
+
|
431 |
+
Remember to choose just ONE formula and apply it consistently to all 5 bullets.
|
432 |
+
|
433 |
+
ORMULA 6 - PERSUASIÓN PROGRESIVA (DOLOR + BENEFICIO + CURIOSIDAD + CONTRASTE + ACCIÓN):
|
434 |
+
Esta fórmula crea bullets altamente persuasivos siguiendo una estructura psicológica de 5 pasos:
|
435 |
+
|
436 |
+
1. Dolor/Problema Específico:
|
437 |
+
- Comienza identificando un dolor o problema concreto del avatar
|
438 |
+
- Puede formularse como pregunta o afirmación directa
|
439 |
+
- Debe tocar un punto emocional específico y reconocible
|
440 |
+
- Ejemplos de inicio: "¿Cansado de...", "Si has intentado...", "Cuando te enfrentas a..."
|
441 |
+
|
442 |
+
2. Beneficio Tangible:
|
443 |
+
- Presenta la solución de forma concreta y medible
|
444 |
+
- Incluye números específicos cuando sea posible (porcentajes, días, resultados)
|
445 |
+
- Muestra la transformación de forma visual y palpable
|
446 |
+
- Conecta directamente con el problema mencionado
|
447 |
+
|
448 |
+
3. Elemento de Curiosidad:
|
449 |
+
- Añade un giro inesperado o sorprendente
|
450 |
+
- Utiliza frases que generen intriga
|
451 |
+
- Menciona un método poco conocido o contraintuitivo
|
452 |
+
- Ejemplos: "el truco que nadie te ha contado", "la técnica contraintuitiva que..."
|
453 |
+
|
454 |
+
4. Eliminación de Objeciones:
|
455 |
+
- Anticipa y neutraliza resistencias comunes
|
456 |
+
- Muestra cómo se logra el resultado sin los obstáculos temidos
|
457 |
+
- Utiliza contrastes: "sin necesidad de...", "aunque nunca antes hayas..."
|
458 |
+
- Elimina la fricción mental para la acción
|
459 |
+
|
460 |
+
5. Llamada a la Acción/Urgencia:
|
461 |
+
- Cierra con un elemento de acción inmediata
|
462 |
+
- Usa verbos en presente o imperativo
|
463 |
+
- Añade un elemento de tiempo para crear urgencia
|
464 |
+
- Conecta la acción con un resultado rápido y visible
|
465 |
+
|
466 |
+
Estructura Flexible:
|
467 |
+
- No es necesario seguir el orden exacto de los 5 elementos
|
468 |
+
- Asegúrate de incluir al menos 4 de los 5 elementos en cada bullet
|
469 |
+
- Adapta la estructura según el tipo de producto/servicio
|
470 |
+
- Mantén un tono conversacional y fluido entre los elementos
|
471 |
+
|
472 |
+
EXAMPLES FOR FORMULA 6:
|
473 |
+
• ¿Te bloqueas al hablar en público y ves cómo tu negocio pierde oportunidades? Descubre la técnica de 3 pasos que te hará comunicar con autoridad en 14 días, usando el mismo truco mental que los mejores conferencistas aplican antes de subir al escenario, sin memorizar discursos ni sonar como un robot.
|
474 |
+
|
475 |
+
• Transforma tu metabolismo lento en una máquina quemagrasa con nuestro protocolo de 8 minutos diarios que activa un 64% más de células musculares que el ejercicio tradicional, gracias al descubrimiento científico que contradice todo lo que creías sobre perder peso, incluso si tienes más de 40 años y has fracasado con todas las dietas anteriores.
|
476 |
+
|
477 |
+
• Cuando tu negocio se estanca en los mismos números mes tras mes, necesitas el sistema de escalabilidad en 3 fases que ha permitido a 1,247 emprendedores duplicar sus ingresos en 90 días, aplicando la estrategia contraintuitiva de reducir servicios en lugar de añadirlos, sin contratar personal adicional ni trabajar más horas que ahora.
|
478 |
+
|
479 |
+
• Si tus campañas de email marketing generan menos del 2% de conversión, implementa nuestra fórmula de asuntos irresistibles que aumenta la tasa de apertura un 47% desde el primer envío, utilizando el principio psicológico que las grandes marcas ocultan a propósito, sin necesidad de tener una lista grande ni conocimientos técnicos avanzados.
|
480 |
+
|
481 |
+
• ¿Frustrado porque tu contenido en redes sociales no genera clientes reales? Aplica hoy mismo nuestro framework de contenido estratégico que convierte seguidores en compradores en un ciclo de 21 días, mediante la técnica del "puente de valor" que pocos conocen pero todos los influencers rentables utilizan, aunque nunca antes hayas vendido nada a través de tus redes.
|
482 |
+
"""
|
483 |
+
|
484 |
+
# Combine base instruction with formula instructions
|
485 |
+
complete_instruction = base_instruction + input_information + formula_instructions
|
486 |
+
|
487 |
+
return complete_instruction
|
488 |
+
|
489 |
+
|
490 |
+
def get_random_bullet_formula():
|
491 |
+
"""
|
492 |
+
Randomly selects a bullet formula type to ensure variety in generated bullets.
|
493 |
+
Extracts formula names automatically from the instruction text.
|
494 |
+
|
495 |
+
Returns:
|
496 |
+
str: The name of the randomly selected formula
|
497 |
+
"""
|
498 |
+
# Get the full instruction text
|
499 |
+
full_instruction = create_bullet_instruction()
|
500 |
+
|
501 |
+
# Extract formula names using regex pattern matching
|
502 |
+
import re
|
503 |
+
|
504 |
+
# Pattern to find formula names (looks for "FORMULA X - NAME:")
|
505 |
+
formula_pattern = r"FORMULA\s+\d+\s+-\s+([^:]+):"
|
506 |
+
|
507 |
+
# Find all matches in the instruction text
|
508 |
+
formula_matches = re.findall(formula_pattern, full_instruction)
|
509 |
+
|
510 |
+
# If no formulas found, fallback to manual list
|
511 |
+
if not formula_matches:
|
512 |
+
formulas = [
|
513 |
+
"STANDARD BENEFIT",
|
514 |
+
"3 EN 1 (FEATURE + BENEFIT + MEANING)",
|
515 |
+
"ANTI-PROCRASTINACIÓN (ACTION + RESULT + TIME)",
|
516 |
+
"NÚMERICA SUPREMA",
|
517 |
+
"EL TRIÁNGULO DE ORO"
|
518 |
+
]
|
519 |
+
else:
|
520 |
+
formulas = formula_matches
|
521 |
+
|
522 |
+
# Select a random formula
|
523 |
+
selected_formula = random.choice(formulas)
|
524 |
+
|
525 |
+
return selected_formula
|
526 |
+
|
527 |
+
|
528 |
+
def create_bullet_instruction_with_formula(target_audience=None, product_service=None, uploaded_content=None, skills=None, selected_formula_name=None):
|
529 |
+
"""
|
530 |
+
Creates the instruction for generating benefit bullets with a specific
|
531 |
+
randomly selected formula to ensure consistency.
|
532 |
+
|
533 |
+
Args:
|
534 |
+
target_audience: Description of the target audience
|
535 |
+
product_service: Name of the product or service
|
536 |
+
uploaded_content: Content from uploaded files (if any)
|
537 |
+
skills: User's skills and expertise
|
538 |
+
selected_formula_name: Name of the formula selected for the main offer
|
539 |
+
|
540 |
+
Returns:
|
541 |
+
str: The complete instruction for generating bullets with the selected formula
|
542 |
+
"""
|
543 |
+
# Check if any information is provided
|
544 |
+
if not target_audience and not product_service and not uploaded_content and not skills:
|
545 |
+
return """
|
546 |
+
ADVERTENCIA: No se ha proporcionado ninguna información para generar los bullets.
|
547 |
+
|
548 |
+
Para obtener bullets más efectivos y personalizados, por favor proporciona al menos uno de los siguientes:
|
549 |
+
- Descripción del público objetivo (avatar)
|
550 |
+
- Nombre del producto o servicio
|
551 |
+
- Contenido adicional relevante
|
552 |
+
- Habilidades y experiencia
|
553 |
+
|
554 |
+
Sin esta información, los bullets generados serán genéricos y posiblemente menos efectivos para tu oferta específica.
|
555 |
+
"""
|
556 |
+
|
557 |
+
# Get base instruction
|
558 |
+
base_instruction = create_bullet_instruction(
|
559 |
+
target_audience=target_audience,
|
560 |
+
product_service=product_service,
|
561 |
+
uploaded_content=uploaded_content,
|
562 |
+
skills=skills,
|
563 |
+
selected_formula_name=selected_formula_name # Pass the formula name
|
564 |
+
)
|
565 |
+
|
566 |
+
# Get a random formula
|
567 |
+
selected_bullet_formula = get_random_bullet_formula()
|
568 |
+
|
569 |
+
# Add specific instruction to use the selected formula
|
570 |
+
formula_directive = f"""
|
571 |
+
|
572 |
+
IMPORTANT OVERRIDE: For this specific task, you MUST use FORMULA {selected_bullet_formula}
|
573 |
+
for ALL 5 bullets. Do not choose randomly - you must use this exact formula consistently.
|
574 |
+
"""
|
575 |
+
|
576 |
+
# Combine instructions
|
577 |
+
complete_instruction = base_instruction + formula_directive
|
578 |
+
|
579 |
+
return complete_instruction
|
headline_generator.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
import random
|
2 |
|
3 |
-
def generate_random_headlines(target_audience, product, angle=None, story_prompt=None, language="español"):
|
4 |
"""
|
5 |
-
Genera titulares aleatorios para anuncios de Facebook basados en
|
6 |
|
7 |
Args:
|
8 |
target_audience: Descripción del público objetivo
|
@@ -10,325 +10,461 @@ def generate_random_headlines(target_audience, product, angle=None, story_prompt
|
|
10 |
angle: El ángulo estratégico seleccionado (opcional)
|
11 |
story_prompt: Tema específico para la historia del anuncio (opcional)
|
12 |
language: Idioma objetivo para el anuncio (default: "español")
|
|
|
|
|
13 |
|
14 |
Returns:
|
15 |
list: Lista de titulares aleatorios con diferentes estructuras
|
16 |
"""
|
17 |
|
18 |
-
#
|
19 |
-
|
20 |
-
"
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
-
|
51 |
-
#
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
"no ver resultados",
|
56 |
-
"perder tiempo y dinero",
|
57 |
-
"sentir frustración",
|
58 |
-
"quedarse estancado",
|
59 |
-
"ver a otros avanzar mientras uno se queda atrás"
|
60 |
-
],
|
61 |
-
|
62 |
-
# Tiempos
|
63 |
-
"tiempo": [
|
64 |
-
"después de tanto esfuerzo",
|
65 |
-
"a pesar de intentarlo todo",
|
66 |
-
"cuando más se necesita",
|
67 |
-
"en momentos críticos"
|
68 |
-
],
|
69 |
-
|
70 |
-
# Soluciones o descubrimientos
|
71 |
-
"solución": [
|
72 |
-
"Esto está cambiando las reglas del juego",
|
73 |
-
"Este enfoque está transformando resultados",
|
74 |
-
"Esta estrategia podría ser la respuesta"
|
75 |
-
],
|
76 |
-
|
77 |
-
"descubrimiento": [
|
78 |
-
"Este descubrimiento está sorprendiendo a expertos",
|
79 |
-
"Esta innovación está cambiando paradigmas",
|
80 |
-
"Este método está revolucionando la industria"
|
81 |
-
],
|
82 |
-
|
83 |
-
# Datos sorprendentes
|
84 |
-
"dato_sorprendente": [
|
85 |
-
"un simple cambio de enfoque",
|
86 |
-
"una técnica olvidada",
|
87 |
-
"un método poco conocido",
|
88 |
-
"un principio ignorado por la mayoría"
|
89 |
-
],
|
90 |
-
|
91 |
-
# Beneficios
|
92 |
-
"beneficio": [
|
93 |
-
"transformar completamente resultados",
|
94 |
-
"multiplicar efectividad",
|
95 |
-
"eliminar obstáculos persistentes",
|
96 |
-
"crear avances significativos"
|
97 |
-
],
|
98 |
-
|
99 |
-
# Grupos de personas
|
100 |
-
"grupo_personas": [
|
101 |
-
"profesionales comunes",
|
102 |
-
"personas sin experiencia previa",
|
103 |
-
"quienes antes fracasaban",
|
104 |
-
"principiantes"
|
105 |
-
],
|
106 |
-
|
107 |
-
# Acciones positivas
|
108 |
-
"acción_positiva": [
|
109 |
-
"logrando resultados extraordinarios",
|
110 |
-
"transformando su situación",
|
111 |
-
"superando obstáculos históricos",
|
112 |
-
"alcanzando metas que parecían imposibles"
|
113 |
-
],
|
114 |
-
|
115 |
-
# Problemas comunes
|
116 |
-
"problema_común": [
|
117 |
-
"lo que todos hacen",
|
118 |
-
"el enfoque tradicional",
|
119 |
-
"el método convencional",
|
120 |
-
"la estrategia que todos siguen"
|
121 |
-
],
|
122 |
-
|
123 |
-
# Consecuencias negativas
|
124 |
-
"consecuencia_negativa": [
|
125 |
-
"saboteando el potencial",
|
126 |
-
"limitando los resultados",
|
127 |
-
"bloqueando el progreso",
|
128 |
-
"creando obstáculos invisibles"
|
129 |
-
],
|
130 |
-
|
131 |
-
# Hábitos comunes
|
132 |
-
"hábito_común": [
|
133 |
-
"este hábito diario",
|
134 |
-
"esta práctica común",
|
135 |
-
"esta rutina aparentemente inofensiva",
|
136 |
-
"esta estrategia popular"
|
137 |
-
],
|
138 |
-
|
139 |
-
# Consecuencias
|
140 |
-
"consecuencia": [
|
141 |
-
"estar saboteando los esfuerzos",
|
142 |
-
"estar creando el efecto contrario",
|
143 |
-
"estar limitando el potencial",
|
144 |
-
"estar generando resultados opuestos"
|
145 |
-
],
|
146 |
-
|
147 |
-
# Temas
|
148 |
-
"tema": [
|
149 |
-
f"{product}",
|
150 |
-
"resultados reales",
|
151 |
-
"éxito sostenible",
|
152 |
-
"transformación verdadera"
|
153 |
-
],
|
154 |
-
|
155 |
-
# Números
|
156 |
-
"número": [
|
157 |
-
"3", "5", "7", "9"
|
158 |
-
],
|
159 |
-
|
160 |
-
# Áreas de vida
|
161 |
-
"área_vida": [
|
162 |
-
"potencial",
|
163 |
-
"resultados",
|
164 |
-
"progreso",
|
165 |
-
"crecimiento"
|
166 |
-
],
|
167 |
-
|
168 |
-
# Situaciones negativas
|
169 |
-
"situación_negativa": [
|
170 |
-
"frustración constante",
|
171 |
-
"resultados mediocres",
|
172 |
-
"estancamiento",
|
173 |
-
"intentos fallidos"
|
174 |
-
],
|
175 |
-
|
176 |
-
# Situaciones positivas
|
177 |
-
"situación_positiva": [
|
178 |
-
"resultados extraordinarios",
|
179 |
-
"éxito consistente",
|
180 |
-
"avance continuo",
|
181 |
-
"transformación completa"
|
182 |
-
],
|
183 |
-
|
184 |
-
# Industrias
|
185 |
-
"industria": [
|
186 |
-
"la forma de ver resultados",
|
187 |
-
"la manera de lograr objetivos",
|
188 |
-
"el enfoque hacia el éxito",
|
189 |
-
"la perspectiva sobre el progreso"
|
190 |
-
],
|
191 |
-
|
192 |
-
# Persona común
|
193 |
-
"persona_común": [
|
194 |
-
"alguien sin ventajas especiales",
|
195 |
-
"una persona común",
|
196 |
-
"quien menos lo esperaba",
|
197 |
-
"alguien que antes fracasaba"
|
198 |
-
],
|
199 |
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
-
#
|
209 |
-
"
|
210 |
-
|
211 |
-
"invertir fortunas",
|
212 |
-
"sacrificar tiempo valioso",
|
213 |
-
"seguir el camino tradicional"
|
214 |
-
],
|
215 |
|
216 |
-
|
217 |
-
"adjetivo": [
|
218 |
-
"poco conocido",
|
219 |
-
"revolucionario",
|
220 |
-
"contraintuitivo",
|
221 |
-
"sorprendente"
|
222 |
-
],
|
223 |
|
224 |
-
|
225 |
-
|
226 |
-
"lograr resultados reales",
|
227 |
-
"crear transformación verdadera",
|
228 |
-
"generar avances significativos",
|
229 |
-
"superar obstáculos persistentes"
|
230 |
-
],
|
231 |
|
232 |
-
|
233 |
-
|
234 |
-
"muchos expertos",
|
235 |
-
"la mayoría de asesores",
|
236 |
-
"quienes venden soluciones tradicionales",
|
237 |
-
"los defensores del método convencional"
|
238 |
-
],
|
239 |
|
240 |
-
|
241 |
-
"elemento": [
|
242 |
-
"principio",
|
243 |
-
"enfoque",
|
244 |
-
"método",
|
245 |
-
"sistema"
|
246 |
-
],
|
247 |
|
248 |
-
#
|
249 |
-
"
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
"
|
254 |
-
],
|
255 |
|
256 |
-
#
|
257 |
-
"
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
|
|
263 |
|
264 |
-
|
265 |
-
"
|
266 |
-
"complicaciones innecesarias",
|
267 |
-
"inversiones costosas",
|
268 |
-
"métodos complejos",
|
269 |
-
"sacrificios excesivos"
|
270 |
-
],
|
271 |
|
272 |
-
#
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
# Personalizar variables según el story_prompt si existe
|
290 |
-
if story_prompt:
|
291 |
-
if "tema" in variables:
|
292 |
-
variables["tema"].append(story_prompt)
|
293 |
-
if "beneficio" in variables:
|
294 |
-
variables["beneficio"].append(f"resolver {story_prompt}")
|
295 |
-
|
296 |
-
# Función para reemplazar variables en una plantilla
|
297 |
-
def fill_template(template):
|
298 |
-
filled_template = template
|
299 |
-
for var_name in variables:
|
300 |
-
if "{" + var_name + "}" in template:
|
301 |
-
filled_template = filled_template.replace(
|
302 |
-
"{" + var_name + "}",
|
303 |
-
random.choice(variables[var_name])
|
304 |
-
)
|
305 |
-
return filled_template
|
306 |
-
|
307 |
-
# Generar titulares de diferentes categorías para asegurar variedad
|
308 |
-
headlines = []
|
309 |
-
|
310 |
-
# Seleccionar categorías diferentes para cada anuncio
|
311 |
-
categories = list(headline_categories.keys())
|
312 |
-
random.shuffle(categories)
|
313 |
-
|
314 |
-
# Asegurar que tenemos al menos 3 categorías diferentes
|
315 |
-
selected_categories = categories[:min(3, len(categories))]
|
316 |
-
|
317 |
-
# Generar un titular de cada categoría seleccionada
|
318 |
-
for category in selected_categories:
|
319 |
-
template = random.choice(headline_categories[category])
|
320 |
-
headline = fill_template(template)
|
321 |
-
headlines.append(headline)
|
322 |
-
|
323 |
-
# Si necesitamos más titulares, generar adicionales de categorías aleatorias
|
324 |
-
while len(headlines) < 9: # Generar 9 titulares (3 para cada anuncio)
|
325 |
-
category = random.choice(categories)
|
326 |
-
templates = headline_categories[category]
|
327 |
-
template = random.choice(templates)
|
328 |
-
headline = fill_template(template)
|
329 |
-
|
330 |
-
# Evitar duplicados
|
331 |
-
if headline not in headlines:
|
332 |
-
headlines.append(headline)
|
333 |
-
|
334 |
-
return headlines
|
|
|
1 |
import random
|
2 |
|
3 |
+
def generate_random_headlines(target_audience, product, angle=None, story_prompt=None, language="español", model=None, number_of_headlines=3):
|
4 |
"""
|
5 |
+
Genera titulares aleatorios para anuncios de Facebook basados en fórmulas persuasivas.
|
6 |
|
7 |
Args:
|
8 |
target_audience: Descripción del público objetivo
|
|
|
10 |
angle: El ángulo estratégico seleccionado (opcional)
|
11 |
story_prompt: Tema específico para la historia del anuncio (opcional)
|
12 |
language: Idioma objetivo para el anuncio (default: "español")
|
13 |
+
model: El modelo de IA a utilizar (si se proporciona)
|
14 |
+
number_of_headlines: Número de titulares a generar (default: 3)
|
15 |
|
16 |
Returns:
|
17 |
list: Lista de titulares aleatorios con diferentes estructuras
|
18 |
"""
|
19 |
|
20 |
+
# Definir las fórmulas de titulares
|
21 |
+
headline_formulas = {
|
22 |
+
"GPS": {
|
23 |
+
"description": """
|
24 |
+
La fórmula GPS (Goal-Period-Solution) crea titulares persuasivos mezclando humor y seriedad, usando lenguaje simple y directo:
|
25 |
+
1. **Meta** (Goal):
|
26 |
+
¿Qué desea lograr el lector?
|
27 |
+
- Resultado deseable
|
28 |
+
- Transformación llamativa
|
29 |
+
- Logro interesante
|
30 |
+
- Mejora notable
|
31 |
+
2. **Periodo** (Period):
|
32 |
+
¿En qué marco temporal?
|
33 |
+
- Momento cotidiano
|
34 |
+
- Rutina diaria
|
35 |
+
- Actividad común
|
36 |
+
- Situación familiar
|
37 |
+
3. **Superación de Obstáculo** (Solution):
|
38 |
+
Conectores variados con toque de humor:
|
39 |
+
- sin (ausencia)
|
40 |
+
- incluso si (desafío)
|
41 |
+
- aunque (contraste)
|
42 |
+
- a pesar de (adversidad)
|
43 |
+
- cuando (circunstancia)
|
44 |
+
- aun con (limitación)
|
45 |
+
- mientras (simultaneidad)
|
46 |
+
- por más que (intensidad)
|
47 |
+
El titular debe ser comprensible y ocasionalmente divertido.
|
48 |
+
""",
|
49 |
+
"examples": [
|
50 |
+
# Humor + Cotidiano
|
51 |
+
"Domina el arte de la inversión mientras te cepillas los dientes incluso si confundes Excel con PowerPoint",
|
52 |
+
|
53 |
+
# Situación Graciosa
|
54 |
+
"Aprende un nuevo idioma durante tus visitas al baño aunque solo sepas decir gracias y por favor",
|
55 |
+
|
56 |
+
# Exageración Divertida
|
57 |
+
"Conquista el miedo a hablar en público durante el desayuno a pesar de que te tiemblen hasta las pestañas",
|
58 |
+
|
59 |
+
# Contraste Humorístico
|
60 |
+
"Desarrolla músculos preparando café cuando levantar la taza te parece ejercicio extremo",
|
61 |
+
|
62 |
+
# Situación Relatable
|
63 |
+
"Domina la fotografía profesional en el supermercado aun con ese celular que sobrevivió tres caídas",
|
64 |
+
|
65 |
+
# Humor Cotidiano
|
66 |
+
"Cultiva un huerto mientras contestas emails aunque tu única planta sobreviviente sea de plástico",
|
67 |
+
|
68 |
+
# Autorreferencial
|
69 |
+
"Escribe tu bestseller mientras te duchas por más que tu gato sea tu único fan",
|
70 |
+
|
71 |
+
# Situación Común
|
72 |
+
"Aprende meditación lavando platos ni siquiera necesitas ponerte en pose pretzel",
|
73 |
+
|
74 |
+
# Exageración
|
75 |
+
"Domina el trading paseando al perro incluso si las matemáticas te dan alergia",
|
76 |
+
|
77 |
+
# Contraste Divertido
|
78 |
+
"Transforma tu postura en videollamadas aunque tu silla parezca instrumento de tortura medieval",
|
79 |
+
|
80 |
+
# Situación Familiar
|
81 |
+
"Aprende a tocar la guitarra cocinando aunque tus vecinos amenacen con mudarse",
|
82 |
+
|
83 |
+
# Humor Autoderrisivo
|
84 |
+
"Mejora tu inglés cantando en la ducha a pesar de que suenes como gato en febrero",
|
85 |
+
|
86 |
+
# Realidad Común
|
87 |
+
"Desarrolla tu marca personal haciendo la colada cuando Instagram te parece ciencia espacial",
|
88 |
+
|
89 |
+
# Situación Real
|
90 |
+
"Domina el networking comprando el pan aun con tu talento para olvidar nombres",
|
91 |
+
|
92 |
+
# Humor + Verdad
|
93 |
+
"Construye tu portfolio mientras ves series aunque tu sofá tenga poderes hipnóticos",
|
94 |
+
|
95 |
+
# Exageración Graciosa
|
96 |
+
"Aprende programación jugando con tus hijos por más que tu computadora sea del jurásico",
|
97 |
+
|
98 |
+
# Situación Cotidiana
|
99 |
+
"Domina la cocina saludable ordenando tu escritorio incluso si hervir agua es tu especialidad",
|
100 |
+
|
101 |
+
# Realidad + Humor
|
102 |
+
"Conquista Instagram esperando el metro hasta con fotos de tu almuerzo congelado",
|
103 |
+
|
104 |
+
# Contraste Gracioso
|
105 |
+
"Transforma tu rutina de ejercicios contestando emails incluso si tu idea de deporte es buscar el control remoto",
|
106 |
+
|
107 |
+
# Humor + Aspiración
|
108 |
+
"Desarrolla músculos de acero haciendo las compras aunque las bolsas del super sean tu único peso"
|
109 |
+
]
|
110 |
+
},
|
111 |
+
"Númerica Suprema": {
|
112 |
+
"description": """
|
113 |
+
La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear titulares persuasivos:
|
114 |
+
1. **Artículos Plurales** (Art):
|
115 |
+
- Los (para masculino plural)
|
116 |
+
- Las (para femenino plural)
|
117 |
+
- Dan naturalidad y autoridad al texto
|
118 |
+
- Ejemplos: "Los 7 métodos...", "Las 3 técnicas..."
|
119 |
+
2. **Números** (N):
|
120 |
+
- Específicos y creíbles (3, 5, 7, 10...)
|
121 |
+
- Crean estructura y expectativas claras
|
122 |
+
- Se combinan con artículos: "Los 5...", "Las 3..."
|
123 |
+
3. **Adjetivo** (A):
|
124 |
+
- Emocionales y descriptivos
|
125 |
+
- Conectan con deseos/miedos
|
126 |
+
- Ejemplos: poderosos, simples, efectivos, revolucionarios
|
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 |
+
5. **Razón** (R):
|
132 |
+
- Justifica el beneficio
|
133 |
+
- Añade credibilidad
|
134 |
+
- Conecta con la motivación del lector
|
135 |
+
6. **Promesa** (P):
|
136 |
+
- Resultado específico y medible
|
137 |
+
- Timeframe realista
|
138 |
+
- Beneficio final atractivo
|
139 |
+
Formatos:
|
140 |
+
- Corto: Art plural + N + A + P + P
|
141 |
+
- Medio: Art plural + N + A + P + R + P
|
142 |
+
- Largo: Art plural + N + A + P + R detallada + P específica
|
143 |
+
""",
|
144 |
+
"examples": [
|
145 |
+
"Los 3 rituales probados para dormir mejor.",
|
146 |
+
"Las 5 rutinas efectivas para fortalecer tu core.",
|
147 |
+
"Los 7 hábitos esenciales para aumentar productividad.",
|
148 |
+
"Las 3 técnicas comprobadas para dormir mejor basadas en neurociencia.",
|
149 |
+
"Los 5 movimientos efectivos para fortalecer tu core sin equipamiento.",
|
150 |
+
"Las 7 estrategias esenciales para aumentar productividad sin estrés.",
|
151 |
+
"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.",
|
152 |
+
"Las 5 secuencias efectivas para fortalecer tu core descubiertas por fisioterapeutas olímpicos que puedes hacer en casa.",
|
153 |
+
"Los 7 sistemas revolucionarios para aumentar productividad desarrollados por CEOs que duplicarán tus resultados."
|
154 |
+
],
|
155 |
+
"variaciones_estructura": {
|
156 |
+
"básica": "Art plural + N + A + P + P",
|
157 |
+
"intermedia": "Art plural + N + A + P + R + P",
|
158 |
+
"avanzada": "Art plural + N + A + P + R detallada + P específica"
|
159 |
+
},
|
160 |
+
"uso_articulos_plurales": {
|
161 |
+
"masculino_plural": {
|
162 |
+
"artículo": "los",
|
163 |
+
"ejemplos_palabras": "métodos, sistemas, pasos, secretos, trucos, hábitos"
|
164 |
+
},
|
165 |
+
"femenino_plural": {
|
166 |
+
"artículo": "las",
|
167 |
+
"ejemplos_palabras": "técnicas, estrategias, rutinas, tácticas, claves"
|
168 |
+
}
|
169 |
+
},
|
170 |
+
"consejos_uso": [
|
171 |
+
"Usa siempre la forma plural para mayor impacto",
|
172 |
+
"Alterna entre 'los' y 'las' según la palabra clave",
|
173 |
+
"Mantén coherencia en el género a lo largo del bullet",
|
174 |
+
"Combina artículos con números de forma natural",
|
175 |
+
"Asegura que la palabra clave esté en plural"
|
176 |
+
]
|
177 |
+
},
|
178 |
+
"AIDA": {
|
179 |
+
"description": """
|
180 |
+
La fórmula AIDA se aplica de manera flexible y estratégica, combinando 1-4 elementos para titulares impactantes y naturales:
|
181 |
+
1. **Atención** (A):
|
182 |
+
Ganchos de apertura poderosos:
|
183 |
+
- "¿Sabías que...?" + dato sorprendente
|
184 |
+
- Mini-historia disruptiva
|
185 |
+
- Idea contraintuitiva
|
186 |
+
- Descubrimiento inesperado
|
187 |
+
- Analogía poderosa
|
188 |
+
- "La mayoría no sabe que..."
|
189 |
+
- "Contrario a lo que piensas..."
|
190 |
+
- "Me sorprendió descubrir que..."
|
191 |
+
2. **Interés** (I):
|
192 |
+
Desarrollo del gancho inicial:
|
193 |
+
- Detalles específicos y relevantes
|
194 |
+
- Conexión problema-solución inesperada
|
195 |
+
- Beneficios únicos y memorables
|
196 |
+
- Puente situación actual-resultado
|
197 |
+
- "La razón es simple..."
|
198 |
+
- "Lo fascinante es que..."
|
199 |
+
- "Y lo mejor de todo..."
|
200 |
+
- "Lo que hace la diferencia es..."
|
201 |
+
3. **Deseo** (D):
|
202 |
+
Amplificación emocional:
|
203 |
+
- Imagen vivida del resultado
|
204 |
+
- Experiencia personalizada
|
205 |
+
- Prueba social natural
|
206 |
+
- Toque de exclusividad
|
207 |
+
- Conexión emocional profunda
|
208 |
+
- "Imagina poder..."
|
209 |
+
- "Piensa cómo sería..."
|
210 |
+
- "Esto significa que podrás..."
|
211 |
+
4. **Acción** (A):
|
212 |
+
Cierre natural:
|
213 |
+
- Siguiente paso simple
|
214 |
+
- Baja fricción para comenzar
|
215 |
+
- Gratificación inmediata
|
216 |
+
- Primer paso sencillo
|
217 |
+
- Seguridad fluida
|
218 |
+
- "Pruébalo hoy mismo..."
|
219 |
+
- "Comienza con un simple..."
|
220 |
+
- "Solo necesitas..."
|
221 |
+
Combinaciones estratégicas:
|
222 |
+
- A + I: Para despertar curiosidad y explicar el valor
|
223 |
+
- A + D: Para conectar problema con deseo
|
224 |
+
- I + D: Para construir deseo desde la lógica
|
225 |
+
- I + D + A: Para construir convicción y motivar
|
226 |
+
- A + I + D: Para educar, intrigar y crear anhelo
|
227 |
+
Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
|
228 |
+
""",
|
229 |
+
"examples": [
|
230 |
+
# A (dato sorprendente) + I (conexión) + D (prueba social) + A (paso simple)
|
231 |
+
"¿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.",
|
232 |
+
|
233 |
+
# A (contraintuitivo) + I (beneficio) + D (resultado) + A (inicio)
|
234 |
+
"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.",
|
235 |
+
|
236 |
+
# A (disruptivo) + I (detalle) + D (resultado)
|
237 |
+
"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.",
|
238 |
+
|
239 |
+
# A (descubrimiento) + I (solución) + D (prueba)
|
240 |
+
"Me sorprendió descubrir que los mejores vendedores nunca memorizan scripts, usan una técnica secreta de improvisación.",
|
241 |
+
|
242 |
+
# I (método único) + D (transformación) + A (acción)
|
243 |
+
"Esta técnica revolucionaria de aprendizaje está transformando cómo los profesionales dominan nuevas habilidades, pruébala hoy con solo 10 minutos.",
|
244 |
+
|
245 |
+
# I (innovación) + D (beneficio) + A (inicio)
|
246 |
+
"El método del empresario silencioso cambia las reglas del networking moderno, empieza con un simple ejercicio.",
|
247 |
+
|
248 |
+
# A (pregunta gancho) + D (resultado) + A (implementación)
|
249 |
+
"¿Sabías que existe un ritual zen que está transformando la productividad en Silicon Valley? Implementalo mañana mismo.",
|
250 |
+
|
251 |
+
# A (analogía) + D (promesa) + A (descubrimiento)
|
252 |
+
"Como el bambú japonés, este método crece silenciosamente hasta que explota en resultados, descubre cómo en 5 minutos.",
|
253 |
+
|
254 |
+
# A (mayoría) + I (validación) + A (acción)
|
255 |
+
"La mayoría desconoce el mejor momento para tomar decisiones importantes, la ciencia lo confirma, implementa este descubrimiento hoy.",
|
256 |
+
|
257 |
+
# A (mini-cambio) + I (resultado) + A (inicio)
|
258 |
+
"Un pequeño cambio en tu rutina de email desencadenará mejoras exponenciales, comienza ahora."
|
259 |
+
|
260 |
+
# A + I + D + A (metáfora natural)
|
261 |
+
"Como el bambú japonés, este método crece invisible hasta explotar en resultados que transformarán tu negocio",
|
262 |
+
|
263 |
+
# A + I + D + A (analogía deportiva)
|
264 |
+
"Los atletas olímpicos entrenan menos horas pero logran más que sus rivales gracias a esta técnica de productividad japonesa",
|
265 |
+
|
266 |
+
# A + I + D (metáfora de naturaleza)
|
267 |
+
"Al igual que las abejas construyen colmenas perfectas, este sistema organiza tu tiempo en patrones de máxima eficiencia",
|
268 |
+
|
269 |
+
# A + I + D (analogía artística)
|
270 |
+
"Como un director de orquesta que guía sin palabras, este método de ventas fluye naturalmente en cada conversación",
|
271 |
+
|
272 |
+
# I + D + A (metáfora de agua)
|
273 |
+
"Este sistema de aprendizaje fluye como un río, adaptándose naturalmente a tu estilo mientras potencia tus habilidades",
|
274 |
+
|
275 |
+
# I + D + A (analogía arquitectónica)
|
276 |
+
"Como los antiguos arquitectos japoneses que construían sin clavos, este método de networking conecta sin forzar relaciones",
|
277 |
+
|
278 |
+
# A + D + A (metáfora zen)
|
279 |
+
"Similar al jardín zen que revela su belleza gradualmente, esta rutina matutina despliega tu potencial día tras día",
|
280 |
+
|
281 |
+
# A + D + A (analogía natural)
|
282 |
+
"Como el roble que crece firme ante las tormentas, este método fortalece tu productividad en tiempos de caos",
|
283 |
+
|
284 |
+
# A + I + A (metáfora lunar)
|
285 |
+
"Al igual que la luna influye en las mareas, la neurociencia revela los ciclos naturales de tu productividad máxima",
|
286 |
+
|
287 |
+
# A + I + A (analogía culinaria)
|
288 |
+
"Como un chef que transforma ingredientes simples en obras maestras, este sistema eleva tu rutina diaria a resultados extraordinarios" ]
|
289 |
+
},
|
290 |
+
"4U": {
|
291 |
+
"description": """
|
292 |
+
La fórmula 4U se aplica de manera flexible y estratégica, combinando 1-4 elementos para crear titulares impactantes y naturales:
|
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 |
+
2. **Urgente** (Urgent):
|
304 |
+
Motivadores de acción inmediata:
|
305 |
+
- "Última oportunidad para..."
|
306 |
+
- "Solo disponible hasta..."
|
307 |
+
- "Antes de que sea tarde..."
|
308 |
+
- "Mientras aún hay tiempo..."
|
309 |
+
- "No esperes a que..."
|
310 |
+
- "Aprovecha ahora..."
|
311 |
+
- "La oferta expira en..."
|
312 |
+
- "Date prisa antes de que..."
|
313 |
+
3. **Único** (Unique):
|
314 |
+
Diferenciadores memorables:
|
315 |
+
- "El método poco conocido..."
|
316 |
+
- "La técnica contraintuitiva..."
|
317 |
+
- "El descubrimiento sorprendente..."
|
318 |
+
- "La estrategia secreta..."
|
319 |
+
- "El sistema revolucionario..."
|
320 |
+
- "El enfoque innovador..."
|
321 |
+
- "La solución inesperada..."
|
322 |
+
- "El método exclusivo..."
|
323 |
+
4. **Ultra-específico** (Ultra-specific):
|
324 |
+
Detalles precisos y medibles:
|
325 |
+
- Números exactos: "27 técnicas..."
|
326 |
+
- Tiempos concretos: "13 minutos..."
|
327 |
+
- Resultados medibles: "63% más..."
|
328 |
+
- Pasos definidos: "3 pasos..."
|
329 |
+
- Datos precisos: "8.3 veces más..."
|
330 |
+
- Métricas claras: "2.5x más rápido..."
|
331 |
+
- Cantidades específicas: "97 personas..."
|
332 |
+
- Plazos definidos: "21 días..."
|
333 |
+
Combinaciones estratégicas:
|
334 |
+
- Útil + Ultra-específico: Para audiencias prácticas y orientadas a resultados
|
335 |
+
- Urgente + Único: Para ofertas especiales y lanzamientos
|
336 |
+
- Único + Ultra-específico: Para diferenciación basada en datos
|
337 |
+
- Útil + Urgente: Para motivar acción inmediata
|
338 |
+
- Útil + Único + Ultra-específico: Para establecer autoridad y credibilidad
|
339 |
+
- Útil + Urgente + Ultra-específico: Para ofertas con beneficios medibles
|
340 |
+
- Único + Urgente + Ultra-específico: Para lanzamientos exclusivos
|
341 |
+
- Útil + Único + Urgente: Para ofertas transformadoras
|
342 |
+
- Las 4U juntas: Para máximo impacto en ofertas premium
|
343 |
+
Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia.
|
344 |
+
""",
|
345 |
+
"examples": [
|
346 |
+
# Útil + Ultra-específico (Para audiencias prácticas y orientadas a resultados)
|
347 |
+
"Aprende 347 palabras en alemán memorizando solo 12 minutos al día mientras cocinas",
|
348 |
+
"Cultiva 27 tipos de hierbas aromáticas en 1.5 metros cuadrados de balcón generando 180 euros mensuales",
|
349 |
+
"Automatiza 89% de tus tareas administrativas dedicando 31 minutos cada lunes",
|
350 |
+
|
351 |
+
# Urgente + Único (Para ofertas especiales y lanzamientos)
|
352 |
+
"Un cartero rural comparte su sistema de gestión del tiempo antes de su retiro definitivo",
|
353 |
+
"La última clase del profesor más longevo de Oxford revela su método de memorización",
|
354 |
+
"El manuscrito perdido de un monje escriba sale a la luz tras 80 años en el Vaticano",
|
355 |
+
|
356 |
+
# Único + Ultra-específico (Para diferenciación basada en datos)
|
357 |
+
"Un grupo de 1457 abuelas italianas entrena una IA para reconocer pasta al dente con 99.7% de precisión",
|
358 |
+
"La técnica de un bibliotecario jubilado cataloga 47893 libros en 73 días usando fichas de colores",
|
359 |
+
"Un taxista noruego fotografía 12437 auroras boreales usando un iPhone 6 y tres filtros caseros",
|
360 |
+
|
361 |
+
# Útil + Urgente (Para motivar acción inmediata)
|
362 |
+
"Aprende a crear tu huerto urbano antes de que suban los precios de las verduras",
|
363 |
+
"Asegura tu plaza en el programa de ahorro energético antes del aumento de tarifas",
|
364 |
+
"Registra tu marca personal mientras el dominio premium sigue disponible",
|
365 |
+
|
366 |
+
# Útil + Único + Ultra-específico (Para establecer autoridad y credibilidad)
|
367 |
+
"La técnica de un cartero rural ayuda a 1893 personas a organizar su tiempo usando solo 17 minutos cada mañana",
|
368 |
+
"Un bibliotecario retirado genera 12437 euros vendiendo libros antiguos por menos de 3 euros cada uno",
|
369 |
+
"Una abuela italiana entrena algoritmos que reducen el tiempo de cocción un 82% manteniendo el sabor tradicional",
|
370 |
+
|
371 |
+
# Útil + Urgente + Ultra-específico (Para ofertas con beneficios medibles)
|
372 |
+
"Aprende 478 palabras en japonés en 21 días antes del aumento de precio del programa",
|
373 |
+
"Automatiza 95% de tu contabilidad en 7 días previo a la nueva normativa fiscal",
|
374 |
+
"Genera 7 fuentes de ingresos pasivos en 30 días antes del cambio en las regulaciones",
|
375 |
+
|
376 |
+
# Único + Urgente + Ultra-específico (Para lanzamientos exclusivos)
|
377 |
+
"El sistema de un monje copista digitaliza 7345 manuscritos en 31 días últimas plazas disponibles",
|
378 |
+
"La fórmula de un taxista fotografía 893 auroras boreales perfectas registro exclusivo esta semana",
|
379 |
+
"El método de un bibliotecario jubilado organiza 47893 archivos en 73 días acceso limitado",
|
380 |
+
|
381 |
+
# Útil + Único + Urgente (Para ofertas transformadoras)
|
382 |
+
"La técnica de un cartero rural transforma tu productividad antes del fin de semana",
|
383 |
+
"El sistema de una abuela italiana revoluciona tu forma de cocinar registro beta por 24 horas",
|
384 |
+
"El método de un bibliotecario maximiza tu capacidad de aprendizaje plazas limitadas"
|
385 |
+
],
|
386 |
+
"consejos_uso": [
|
387 |
+
"Asegura que cada elemento U refuerce a los demás",
|
388 |
+
"Mantén un equilibrio entre urgencia y credibilidad",
|
389 |
+
"Usa datos específicos para aumentar la confianza",
|
390 |
+
"Adapta el orden de los elementos según tu audiencia",
|
391 |
+
"Evita exageraciones que puedan generar desconfianza",
|
392 |
+
"Combina los elementos de forma natural y fluida",
|
393 |
+
"Asegúrate de que cada elemento añada valor real",
|
394 |
+
"Prueba diferentes combinaciones para encontrar las más efectivas"
|
395 |
+
]
|
396 |
+
}
|
397 |
}
|
398 |
+
|
399 |
+
# Función para generar titulares usando el modelo de IA
|
400 |
+
def generate_headlines_with_model(model, target_audience, product, selected_formula=None, selected_angle="NINGUNO", number_of_headlines=3):
|
401 |
+
"""
|
402 |
+
Genera titulares usando un modelo de lenguaje avanzado.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
403 |
|
404 |
+
Args:
|
405 |
+
model: El modelo de lenguaje a utilizar (ya inicializado)
|
406 |
+
target_audience: Descripción del público objetivo
|
407 |
+
product: El producto o servicio que se anuncia
|
408 |
+
selected_formula: La fórmula seleccionada para generar los titulares (si es None, se selecciona al azar)
|
409 |
+
selected_angle: El ángulo estratégico seleccionado (default: "NINGUNO")
|
410 |
+
number_of_headlines: Número de titulares a generar (default: 3)
|
411 |
+
|
412 |
+
Returns:
|
413 |
+
str: Los titulares generados en formato numerado
|
414 |
+
"""
|
415 |
+
# Si no se proporciona una fórmula, seleccionar una al azar
|
416 |
+
if selected_formula is None:
|
417 |
+
formula_name = random.choice(list(headline_formulas.keys()))
|
418 |
+
selected_formula = headline_formulas[formula_name]
|
419 |
+
print(f"Fórmula seleccionada aleatoriamente: {formula_name}")
|
420 |
|
421 |
+
# Crear la instrucción para generar los titulares
|
422 |
+
headlines_instruction = f"""
|
423 |
+
Actúa como un experto en copywriting y marketing digital especializado en titulares persuasivos.
|
|
|
|
|
|
|
|
|
424 |
|
425 |
+
Genera exactamente {number_of_headlines} titulares persuasivos para un anuncio de Facebook dirigido a {target_audience} sobre {product}.
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
|
427 |
+
Utiliza la siguiente fórmula de copywriting como guía:
|
428 |
+
{selected_formula['description']}
|
|
|
|
|
|
|
|
|
|
|
429 |
|
430 |
+
Ejemplos de titulares con esta fórmula:
|
431 |
+
{selected_formula['examples'][:3]}
|
|
|
|
|
|
|
|
|
|
|
432 |
|
433 |
+
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
|
435 |
+
# Añadir el ángulo emocional si se proporciona
|
436 |
+
if selected_angle and selected_angle != "NINGUNO":
|
437 |
+
headlines_instruction += f"""
|
438 |
+
Incorpora este ángulo emocional en los titulares:
|
439 |
+
{selected_angle}
|
440 |
+
"""
|
|
|
441 |
|
442 |
+
# Instrucciones finales para el formato
|
443 |
+
headlines_instruction += """
|
444 |
+
Importante:
|
445 |
+
1. Numera cada titular (1., 2., 3., etc.)
|
446 |
+
2. Cada titular debe ser único y persuasivo
|
447 |
+
3. Adapta la fórmula al producto y audiencia específicos
|
448 |
+
4. No uses comillas ni símbolos especiales innecesarios
|
449 |
+
5. Mantén un tono conversacional y natural
|
450 |
|
451 |
+
Solo devuelve los titulares numerados, sin explicaciones adicionales.
|
452 |
+
"""
|
|
|
|
|
|
|
|
|
|
|
453 |
|
454 |
+
# Usar el modelo para generar los titulares
|
455 |
+
try:
|
456 |
+
chat_session = model.start_chat(
|
457 |
+
history=[
|
458 |
+
{
|
459 |
+
"role": "user",
|
460 |
+
"parts": [headlines_instruction],
|
461 |
+
},
|
462 |
+
]
|
463 |
+
)
|
464 |
+
|
465 |
+
response = chat_session.send_message(headlines_instruction)
|
466 |
+
generated_headlines = response.text
|
467 |
+
|
468 |
+
return generated_headlines
|
469 |
+
except Exception as e:
|
470 |
+
return f"Error al generar titulares: {str(e)}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|