JeCabrera commited on
Commit
4cbfc8a
·
verified ·
1 Parent(s): dccd8f1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +73 -83
app.py CHANGED
@@ -1,4 +1,4 @@
1
- # Código actualizado para incluir selección de fórmulas en un acordeón aparte
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
- # Ejemplos de titulares por tipo
32
- headline_types = {
33
- "pregunta": [
34
- "¿Qué sorprendente secreto revela el éxito detrás de los grandes emprendedores?",
35
- "¿Estás haciendo estos errores comunes en tu rutina diaria?",
36
- ],
37
- "historia": [
38
- "La increíble transformación de alguien que decidió salir de su zona de confort.",
39
- "El viaje inesperado que llevó a un joven a descubrir su pasión por la música.",
40
- ],
41
- "afirmación": [
42
- "La clave para una vida más feliz está en tus decisiones diarias.",
43
- "Cada fracaso es una oportunidad disfrazada para aprender y crecer.",
44
- ],
45
- "llamado_a_la_accion": [
46
- "Descubre cómo mejorar tu productividad en solo una semana.",
47
- "Únete a nuestro curso y transforma tu carrera profesional hoy mismo.",
48
- ],
49
- "consejo": [
50
- "5 consejos para mejorar tu concentración mientras trabajas desde casa.",
51
- "Aprende a gestionar tu tiempo de manera efectiva con estas simples estrategias.",
52
- ],
53
- "frase_inspiradora": [
54
- "El único modo de hacer un gran trabajo es amar lo que haces.",
55
- "La mejor forma de predecir el futuro es crearlo.",
56
- ],
57
- "dato_impresionante": [
58
- "¿Sabías que el 70% de las personas no están satisfechas con su trabajo actual?",
59
- "Los estudios muestran que dedicar al menos 30 minutos al día a la lectura puede aumentar tu productividad.",
60
- ],
61
- "mitologia": [
62
- "La verdad detrás del mito de que solo los jóvenes pueden ser emprendedores exitosos.",
63
- "Desmitificando la creencia de que necesitas un título universitario para tener éxito.",
64
- ],
65
- "numerico": [
66
- "10 formas sorprendentes de aumentar tu productividad en el trabajo.",
67
- "7 hábitos que transformarán tu vida en solo un mes.",
68
- ],
69
- "impactante": [
70
- "¡Descubre el oscuro secreto que las empresas no quieren que sepas!",
71
- "La verdad escalofriante sobre los ingredientes de tus alimentos favoritos.",
72
- ],
73
- "amarillista": [
74
- "¡No podrás creer lo que esta persona hizo para hacerse rica de la noche a la mañana!",
75
- "¡Alerta! Estos hábitos cotidianos podrían estar arruinando tu salud sin que te des cuenta.",
76
- ],
 
 
 
 
77
  }
78
 
79
  # Función para generar titulares
80
- def generate_headlines(number_of_headlines, target_audience, product, temperature, selected_types, selected_formula):
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 los siguientes tipos de titulares: {', '.join(selected_types)}. "
104
- f"Y usa la fórmula de titular seleccionada: {selected_formula}"
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 acordión para la creatividad
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
- selected_types = st.multiselect(
178
- "Elige los tipos de encabezados que deseas incluir",
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
- st.markdown(f"**{selected_formula}:**")
192
- for formula in headline_formulas[selected_formula]:
193
- st.write(formula)
 
 
 
 
 
 
 
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 selected_types:
201
  try:
202
  # Obtener la respuesta del modelo
203
- generated_headlines = generate_headlines(number_of_headlines, target_audience, product, temperature, selected_types, selected_formula)
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 al menos un tipo de encabezado.")
 
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.")