Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -19,28 +19,16 @@ def get_random_product_mention():
|
|
19 |
# Función para crear el texto introductorio aleatorio
|
20 |
def generate_intro_text():
|
21 |
intros = [
|
22 |
-
"
|
23 |
-
"
|
24 |
"Es momento de tomar el control de tu futuro.",
|
25 |
-
"¿Te gustaría dominar una habilidad que te transforme?",
|
26 |
"No dejes pasar esta oportunidad única para mejorar tu vida.",
|
27 |
"Ahora tienes la oportunidad de hacer algo increíble.",
|
28 |
"El primer paso hacia tus sueños está frente a ti.",
|
29 |
-
"No lo pienses más, el cambio comienza aquí y ahora."
|
30 |
]
|
31 |
return random.choice(intros)
|
32 |
|
33 |
-
# Función para generar texto inicial dinámico basado en contexto
|
34 |
-
def generate_dynamic_intro(target_audience, product, call_to_action):
|
35 |
-
templates = [
|
36 |
-
f"¿Estás listo para transformar tu vida con {product}?",
|
37 |
-
f"Imagina cómo {product} puede ayudarte a {call_to_action}.",
|
38 |
-
f"Para {target_audience}, {product} es la solución ideal para {call_to_action}.",
|
39 |
-
f"¿Quieres saber cómo {product} puede hacer tu vida más fácil? Descúbrelo ahora.",
|
40 |
-
f"{product} es la herramienta que necesitas para {call_to_action}.",
|
41 |
-
]
|
42 |
-
return random.choice(templates)
|
43 |
-
|
44 |
# Crear la instrucción de mención basada en la opción seleccionada
|
45 |
def get_mention_instruction(product_mention, product):
|
46 |
if product_mention == "Directa":
|
@@ -86,10 +74,6 @@ def get_random_cta():
|
|
86 |
cta = random.choice(cta_types[cta_type]) # Selección aleatoria del CTA dentro del tipo
|
87 |
return cta
|
88 |
|
89 |
-
# Función para combinar texto inicial y CTA
|
90 |
-
def generate_intro_text_with_cta(intro_text, cta):
|
91 |
-
return f"{intro_text} {cta}"
|
92 |
-
|
93 |
# Función para generar llamados a la acción
|
94 |
def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature):
|
95 |
product_mention = get_random_product_mention()
|
@@ -116,6 +100,7 @@ def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temp
|
|
116 |
"1. **Acción**: Palabras que invitan a realizar un movimiento (e.g., 'Descarga', 'Suscribete').\n"
|
117 |
"2. **Valor**: Explica el beneficio que el usuario obtendrá al realizar la acción.\n\n"
|
118 |
"Asegúrate de que cada llamado a la acción siga la estructura de 'Acción + conector + Valor', y evita incluir explicaciones como 'Acción: Descubrir' o 'Valor: Un oasis de paz en medio del caos'.\n"
|
|
|
119 |
"Los llamados de acción deben de ser cortos y concisos, basate en estos ejemplos para realizar tu tarea de crear los CTA's:\n\n"
|
120 |
"**Ejemplos de CTAs en Voz Activa en Segunda Persona:**\n"
|
121 |
"- 'Asiste a nuestro webinar para convertirte en un padre amoroso.'\n"
|
@@ -125,6 +110,9 @@ def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temp
|
|
125 |
)
|
126 |
)
|
127 |
|
|
|
|
|
|
|
128 |
# Crear un mensaje para el modelo que incluye los CTAs generados según los tipos seleccionados
|
129 |
ctas_instruction = (
|
130 |
f"Tu tarea es crear {number_of_ctas} llamados a la acción efectivos dirigidos a {target_audience}, "
|
@@ -138,7 +126,7 @@ def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temp
|
|
138 |
response = model.generate_content([ctas_instruction])
|
139 |
|
140 |
# Extraer el texto de la respuesta
|
141 |
-
generated_ctas = response.candidates[0].content.parts[0].text.strip()
|
142 |
|
143 |
# Retornar el resultado
|
144 |
return generated_ctas
|
@@ -193,24 +181,14 @@ with col1:
|
|
193 |
if submit:
|
194 |
if target_audience and product and call_to_action:
|
195 |
try:
|
196 |
-
# Generar texto
|
197 |
-
|
198 |
-
|
199 |
-
# Generar CTAs
|
200 |
generated_ctas = generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature)
|
201 |
|
202 |
-
# Combinar con texto inicial
|
203 |
-
combined_ctas = [
|
204 |
-
generate_intro_text_with_cta(intro_text, cta.strip())
|
205 |
-
for cta in generated_ctas.split('\n')
|
206 |
-
]
|
207 |
-
|
208 |
-
# Mostrar CTAs combinados
|
209 |
col2.markdown(f"""
|
210 |
-
<div style="border: 1px solid #000000; padding:
|
211 |
-
<
|
212 |
-
|
213 |
-
</ul>
|
214 |
</div>
|
215 |
""", unsafe_allow_html=True)
|
216 |
except ValueError as e:
|
|
|
19 |
# Función para crear el texto introductorio aleatorio
|
20 |
def generate_intro_text():
|
21 |
intros = [
|
22 |
+
"Y si a ti te gustaría aprender todo esto…",
|
23 |
+
"Así que si lo que quieres es llevarte todo, entonces...",
|
24 |
"Es momento de tomar el control de tu futuro.",
|
|
|
25 |
"No dejes pasar esta oportunidad única para mejorar tu vida.",
|
26 |
"Ahora tienes la oportunidad de hacer algo increíble.",
|
27 |
"El primer paso hacia tus sueños está frente a ti.",
|
28 |
+
"No lo pienses más, el cambio comienza aquí y ahora."
|
29 |
]
|
30 |
return random.choice(intros)
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
# Crear la instrucción de mención basada en la opción seleccionada
|
33 |
def get_mention_instruction(product_mention, product):
|
34 |
if product_mention == "Directa":
|
|
|
74 |
cta = random.choice(cta_types[cta_type]) # Selección aleatoria del CTA dentro del tipo
|
75 |
return cta
|
76 |
|
|
|
|
|
|
|
|
|
77 |
# Función para generar llamados a la acción
|
78 |
def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature):
|
79 |
product_mention = get_random_product_mention()
|
|
|
100 |
"1. **Acción**: Palabras que invitan a realizar un movimiento (e.g., 'Descarga', 'Suscribete').\n"
|
101 |
"2. **Valor**: Explica el beneficio que el usuario obtendrá al realizar la acción.\n\n"
|
102 |
"Asegúrate de que cada llamado a la acción siga la estructura de 'Acción + conector + Valor', y evita incluir explicaciones como 'Acción: Descubrir' o 'Valor: Un oasis de paz en medio del caos'.\n"
|
103 |
+
"Important: Only answer CTAs, never include explanations or categories, like this: 'Registrarme ahora y descubrir cómo encontrar un poco de paz en medio del caos. (Este CTA apela al deseo de Han Solo de encontrar un momento de tranquilidad en su vida agitada.).'\n"
|
104 |
"Los llamados de acción deben de ser cortos y concisos, basate en estos ejemplos para realizar tu tarea de crear los CTA's:\n\n"
|
105 |
"**Ejemplos de CTAs en Voz Activa en Segunda Persona:**\n"
|
106 |
"- 'Asiste a nuestro webinar para convertirte en un padre amoroso.'\n"
|
|
|
110 |
)
|
111 |
)
|
112 |
|
113 |
+
# Selección aleatoria de tipos de CTA, manteniendo variedad en la salida
|
114 |
+
selected_types = random.sample(list(cta_types.keys()), min(number_of_ctas, len(cta_types)))
|
115 |
+
|
116 |
# Crear un mensaje para el modelo que incluye los CTAs generados según los tipos seleccionados
|
117 |
ctas_instruction = (
|
118 |
f"Tu tarea es crear {number_of_ctas} llamados a la acción efectivos dirigidos a {target_audience}, "
|
|
|
126 |
response = model.generate_content([ctas_instruction])
|
127 |
|
128 |
# Extraer el texto de la respuesta
|
129 |
+
generated_ctas = response.candidates[0].content.parts[0].text.strip() # Modificado aquí
|
130 |
|
131 |
# Retornar el resultado
|
132 |
return generated_ctas
|
|
|
181 |
if submit:
|
182 |
if target_audience and product and call_to_action:
|
183 |
try:
|
184 |
+
intro_text = generate_intro_text() # Generar el texto introductorio
|
185 |
+
# Obtener la respuesta del modelo
|
|
|
|
|
186 |
generated_ctas = generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature)
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
col2.markdown(f"""
|
189 |
+
<div style="border: 1px solid #000000; padding: 5px; border-radius: 8px; background-color: #ffffff;">
|
190 |
+
<h4>{intro_text}</h4>
|
191 |
+
<p>{generated_ctas}</p>
|
|
|
192 |
</div>
|
193 |
""", unsafe_allow_html=True)
|
194 |
except ValueError as e:
|