Spaces:
Runtime error
Runtime error
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:
|