Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# Código actualizado
|
2 |
|
3 |
from dotenv import load_dotenv
|
4 |
import streamlit as st
|
@@ -28,56 +28,60 @@ def get_mention_instruction(product_mention, product):
|
|
28 |
return f"Introduce el producto '{product}' usando una metáfora, conectándolo simbólicamente a la solución que necesita el lector."
|
29 |
return ""
|
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 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
"
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
77 |
}
|
78 |
|
79 |
# Función para generar titulares
|
80 |
-
def generate_headlines(number_of_headlines, target_audience, product, temperature,
|
81 |
product_mention = get_random_product_mention()
|
82 |
mention_instruction = get_mention_instruction(product_mention, product)
|
83 |
|
@@ -100,8 +104,8 @@ def generate_headlines(number_of_headlines, target_audience, product, temperatur
|
|
100 |
headlines_instruction = (
|
101 |
f"Tu tarea es crear {number_of_headlines} ganchos o encabezados titulares llamativos diseñados para {target_audience} "
|
102 |
f"con el fin de generar interés en {product}. Usa la siguiente mención: {mention_instruction}. "
|
103 |
-
f"Asegúrate de utilizar
|
104 |
-
f"
|
105 |
)
|
106 |
|
107 |
chat_session = model.start_chat(
|
@@ -116,22 +120,6 @@ def generate_headlines(number_of_headlines, target_audience, product, temperatur
|
|
116 |
response = chat_session.send_message("Genera los titulares") # Enviar mensaje para obtener la respuesta
|
117 |
return response.text # Regresar la respuesta directamente
|
118 |
|
119 |
-
# Añadir más fórmulas de titulares al acordeón
|
120 |
-
headline_formulas = {
|
121 |
-
"fórmula_1": [
|
122 |
-
"Descubre cómo {beneficio} con solo {acción}.",
|
123 |
-
"Aprende a {acción} y transforma tu vida con {beneficio}.",
|
124 |
-
],
|
125 |
-
"fórmula_2": [
|
126 |
-
"¿Estás listo para {acción} y {beneficio}?",
|
127 |
-
"La guía definitiva para {acción} y conseguir {beneficio}.",
|
128 |
-
],
|
129 |
-
"fórmula_3": [
|
130 |
-
"Todo lo que necesitas saber sobre {tema} y cómo {acción}.",
|
131 |
-
"Lo que nunca te dijeron sobre {tema} y cómo {acción} para mejorar {resultado}.",
|
132 |
-
],
|
133 |
-
}
|
134 |
-
|
135 |
# Configurar la interfaz de usuario con Streamlit
|
136 |
st.set_page_config(page_title="Enchanted Hooks", layout="wide")
|
137 |
|
@@ -171,36 +159,38 @@ with col1:
|
|
171 |
product = st.text_input("¿Qué producto tienes en mente?", placeholder="Ejemplo: Curso de Inglés")
|
172 |
number_of_headlines = st.selectbox("Número de Titulares", options=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=4)
|
173 |
|
174 |
-
# Crear
|
175 |
with st.expander("Personaliza tus titulares"):
|
176 |
temperature = st.slider("Creatividad", min_value=0.0, max_value=1.0, value=0.5, step=0.1)
|
177 |
-
|
178 |
-
|
179 |
-
options=list(headline_types.keys()),
|
180 |
-
default=["pregunta", "historia"]
|
181 |
-
)
|
182 |
-
|
183 |
-
# Crear nuevo acordeón para elegir fórmulas de titulares
|
184 |
-
with st.expander("Elige una fórmula para los titulares"):
|
185 |
-
selected_formula = st.selectbox(
|
186 |
"Selecciona una fórmula para tus titulares",
|
187 |
options=list(headline_formulas.keys())
|
188 |
)
|
|
|
|
|
189 |
# Mostrar ejemplos de la fórmula seleccionada
|
190 |
-
st.markdown("Ejemplos de la fórmula seleccionada
|
191 |
-
|
192 |
-
|
193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
|
195 |
# Botón de enviar
|
196 |
submit = st.button("Generar Titulares")
|
197 |
|
198 |
# Mostrar los titulares generados
|
199 |
if submit:
|
200 |
-
if target_audience and product and
|
201 |
try:
|
202 |
# Obtener la respuesta del modelo
|
203 |
-
generated_headlines = generate_headlines(number_of_headlines, target_audience, product, temperature,
|
204 |
col2.markdown(f"""
|
205 |
<div style="border: 1px solid #000000; padding: 5px; border-radius: 8px; background-color: #ffffff;">
|
206 |
<h4>Observa la magia en acción:</h4>
|
@@ -210,4 +200,4 @@ if submit:
|
|
210 |
except ValueError as e:
|
211 |
col2.error(f"Error: {str(e)}")
|
212 |
else:
|
213 |
-
col2.error("Por favor, proporciona el público objetivo, el producto y selecciona
|
|
|
1 |
+
# Código actualizado con las modificaciones solicitadas para las fórmulas
|
2 |
|
3 |
from dotenv import load_dotenv
|
4 |
import streamlit as st
|
|
|
28 |
return f"Introduce el producto '{product}' usando una metáfora, conectándolo simbólicamente a la solución que necesita el lector."
|
29 |
return ""
|
30 |
|
31 |
+
# Fórmulas con ejemplos y explicaciones
|
32 |
+
headline_formulas = {
|
33 |
+
"fórmula_1": {
|
34 |
+
"description": "Plantillas creativas que combinan tres preguntas clave para generar titulares disruptivos",
|
35 |
+
"questions": [
|
36 |
+
"¿Qué es lo que el lector quiere conseguir?",
|
37 |
+
"¿En qué periodo de tiempo quiere conseguirlo?",
|
38 |
+
"¿Cuál es la objeción principal del lector que le impide lograrlo?"
|
39 |
+
],
|
40 |
+
"examples": [
|
41 |
+
"Sin gastar un solo centavo en publicidad, consigue tus primeros 100 clientes en 30 días.",
|
42 |
+
"En solo 10 minutos al día, pierde esos 5 kilos sin tener que dejar de comer lo que te gusta.",
|
43 |
+
"Como ahorrar para salir de viaje, en solo tres meses y sin dejar esas noches de cine."
|
44 |
+
]
|
45 |
+
},
|
46 |
+
"fórmula_2": {
|
47 |
+
"description": "La fórmula Suprema de Istvanova: Números + Adjetivo + Palabra Clave + Razón + Promesa",
|
48 |
+
"examples": [
|
49 |
+
"5 fórmulas secretas para mejorar tus cartas de venta e incrementar tus ventas",
|
50 |
+
"25 frases del éxito que llevaron a Abraham Lincoln a la presidencia y que te harán un gran líder",
|
51 |
+
"8 comandos claves que convierten a tu perro travieso en una adorable mascota",
|
52 |
+
"10 palabras prohibidas que debes evitar que mejorarán la relación con tu pareja antes de un mes"
|
53 |
+
]
|
54 |
+
},
|
55 |
+
"fórmula_3": {
|
56 |
+
"description": "La fórmula AIDA: Atención + Interés + Deseo + Acción",
|
57 |
+
"explanation": """
|
58 |
+
Atención: Es el primer paso y el más importante: debes captar la atención del lector de inmediato. Un buen encabezado debe destacar y despertar el interés, haciendo que el lector quiera seguir leyendo.
|
59 |
+
Ejemplo: "¿Cansado de no ver resultados en tu dieta?"
|
60 |
+
|
61 |
+
Interés: Una vez que tienes su atención, debes mantener su interés proporcionando más detalles relevantes. Aquí es donde el lector empieza a identificarse con el problema o la situación que se le presenta.
|
62 |
+
Ejemplo: "Descubre cómo perder peso sin dietas extremas ni horas en el gimnasio."
|
63 |
+
|
64 |
+
Deseo: El siguiente paso es despertar el deseo del lector. Muestra cómo tu solución puede mejorar su vida o resolver su problema de manera atractiva. El lector debe visualizar los beneficios de seguir tu consejo o usar tu producto.
|
65 |
+
Ejemplo: "Imagina verte en tu mejor forma, sin privarte de lo que te gusta."
|
66 |
+
|
67 |
+
Acción: Finalmente, debes motivar al lector a actuar. Llama a la acción de manera clara y directa para que el lector se sienta impulsado a tomar el siguiente paso.
|
68 |
+
Ejemplo: "Comienza ahora con nuestra guía gratis y cambia tu cuerpo de inmediato."
|
69 |
+
""",
|
70 |
+
"examples": [
|
71 |
+
"¿Cansado de no ver resultados en tu dieta?",
|
72 |
+
"Descubre cómo perder peso sin dietas extremas ni horas en el gimnasio.",
|
73 |
+
"Imagina verte en tu mejor forma, sin privarte de lo que te gusta.",
|
74 |
+
"Comienza ahora con nuestra guía gratis y cambia tu cuerpo de inmediato.",
|
75 |
+
"Imagina tener un teléfono tan rápido como cuando lo compraste.",
|
76 |
+
"Te mostramos cómo atraer clientes de manera automática sin tener experiencia previa.",
|
77 |
+
"¿Cansado de no ver resultados en tu dieta?",
|
78 |
+
"Imagina tener ventas constantes mientras duermes."
|
79 |
+
]
|
80 |
+
}
|
81 |
}
|
82 |
|
83 |
# Función para generar titulares
|
84 |
+
def generate_headlines(number_of_headlines, target_audience, product, temperature, selected_formula):
|
85 |
product_mention = get_random_product_mention()
|
86 |
mention_instruction = get_mention_instruction(product_mention, product)
|
87 |
|
|
|
104 |
headlines_instruction = (
|
105 |
f"Tu tarea es crear {number_of_headlines} ganchos o encabezados titulares llamativos diseñados para {target_audience} "
|
106 |
f"con el fin de generar interés en {product}. Usa la siguiente mención: {mention_instruction}. "
|
107 |
+
f"Asegúrate de utilizar la fórmula de titular seleccionada: {selected_formula['description']}. "
|
108 |
+
f"Usa los ejemplos proporcionados para guiar tu creatividad."
|
109 |
)
|
110 |
|
111 |
chat_session = model.start_chat(
|
|
|
120 |
response = chat_session.send_message("Genera los titulares") # Enviar mensaje para obtener la respuesta
|
121 |
return response.text # Regresar la respuesta directamente
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
# Configurar la interfaz de usuario con Streamlit
|
124 |
st.set_page_config(page_title="Enchanted Hooks", layout="wide")
|
125 |
|
|
|
159 |
product = st.text_input("¿Qué producto tienes en mente?", placeholder="Ejemplo: Curso de Inglés")
|
160 |
number_of_headlines = st.selectbox("Número de Titulares", options=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=4)
|
161 |
|
162 |
+
# Crear un único acordeón para fórmula y creatividad
|
163 |
with st.expander("Personaliza tus titulares"):
|
164 |
temperature = st.slider("Creatividad", min_value=0.0, max_value=1.0, value=0.5, step=0.1)
|
165 |
+
|
166 |
+
selected_formula_key = st.selectbox(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
"Selecciona una fórmula para tus titulares",
|
168 |
options=list(headline_formulas.keys())
|
169 |
)
|
170 |
+
selected_formula = headline_formulas[selected_formula_key]
|
171 |
+
|
172 |
# Mostrar ejemplos de la fórmula seleccionada
|
173 |
+
st.markdown(f"**Ejemplos de la fórmula seleccionada ({selected_formula_key}):**")
|
174 |
+
for example in selected_formula['examples']:
|
175 |
+
st.write(example)
|
176 |
+
|
177 |
+
if selected_formula_key == 'fórmula_3':
|
178 |
+
st.markdown(f"**Explicación de la fórmula AIDA:**")
|
179 |
+
st.markdown(selected_formula['explanation'])
|
180 |
+
elif selected_formula_key == 'fórmula_1':
|
181 |
+
st.markdown(f"**Preguntas clave para la fórmula 1:**")
|
182 |
+
for question in selected_formula['questions']:
|
183 |
+
st.write(question)
|
184 |
|
185 |
# Botón de enviar
|
186 |
submit = st.button("Generar Titulares")
|
187 |
|
188 |
# Mostrar los titulares generados
|
189 |
if submit:
|
190 |
+
if target_audience and product and selected_formula:
|
191 |
try:
|
192 |
# Obtener la respuesta del modelo
|
193 |
+
generated_headlines = generate_headlines(number_of_headlines, target_audience, product, temperature, selected_formula)
|
194 |
col2.markdown(f"""
|
195 |
<div style="border: 1px solid #000000; padding: 5px; border-radius: 8px; background-color: #ffffff;">
|
196 |
<h4>Observa la magia en acción:</h4>
|
|
|
200 |
except ValueError as e:
|
201 |
col2.error(f"Error: {str(e)}")
|
202 |
else:
|
203 |
+
col2.error("Por favor, proporciona el público objetivo, el producto y selecciona una fórmula.")
|