JeCabrera commited on
Commit
086f7bc
·
verified ·
1 Parent(s): a1b09a2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -75
app.py CHANGED
@@ -3,56 +3,58 @@ import streamlit as st
3
  import os
4
  import google.generativeai as genai
5
 
6
- # Cargar las variables de entorno
7
  load_dotenv()
8
 
9
- # Configurar la API de Google
10
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
11
 
 
12
  def generate_benefits(focus_points, product, target_audience):
13
- # Base del prompt para generar beneficios persuasivos
14
- prompt = (
15
- "Eres un experto en copywriting y tu objetivo es crear bullets persuasivos que destaquen los beneficios del producto, "
16
- "conecten emocionalmente con la audiencia y respondan a sus problemas, necesidades, deseos o situaciones específicas.\n\n"
17
- "Ten en cuenta lo siguiente:\n"
18
- "- Los bullets son pequeños anzuelos diseñados para captar la atención de inmediato, como tráilers de películas que dejan a la audiencia queriendo más.\n"
19
- "- Ayudan a evitar textos largos y monótonos, destacando tanto beneficios emocionales como prácticos.\n"
20
- "- Los beneficios deben ser relevantes, concisos y específicos, mostrando cómo el producto puede transformar o mejorar la vida de la audiencia.\n\n"
21
- "Ahora, crea una lista de beneficios para el siguiente producto y nicho objetivo. Si no se especifican problemas, necesidades, deseos o situaciones, "
22
- "identifica ejemplos comunes relevantes para el nicho objetivo proporcionado y asocia estos problemas con el producto.\n\n"
23
- "Producto: {product}\n"
24
- "Nicho objetivo: {target_audience}\n\n"
25
- "Ejemplos de problemas, necesidades, deseos o situaciones comunes para este nicho objetivo pueden incluir:\n"
26
- "- Desafíos comunes en el nicho, como falta de tiempo, dinero, habilidades, etc.\n"
27
- "- Necesidades específicas del público objetivo que el producto puede solucionar.\n"
28
- "- Deseos o aspiraciones que este público busca cumplir.\n\n"
29
- "Por ejemplo:\n"
30
- "Si el nicho objetivo es 'emprendedores', los problemas pueden ser: 'No saber cómo atraer clientes', 'Falta de tiempo para manejar todos los aspectos del negocio', 'Dificultad para encontrar clientes de calidad'.\n\n"
31
- "Si el nicho objetivo es 'madres primerizas', los problemas pueden ser: 'Falta de tiempo para balancear la vida personal y profesional', 'Preocupación por la salud del bebé', 'Estrés por la falta de apoyo'.\n\n"
32
- "Una vez que hayas identificado estos problemas, necesidades o deseos, crea bullets que respondan a ellos con el siguiente formato:\n\n"
33
- "[Beneficio práctico o emocional que resuena con la audiencia.]\n"
34
- "[Impacto positivo directo que el producto puede generar en la vida de la audiencia.]\n"
35
- "[Razón única que hace que el producto sea indispensable para resolver un problema o situación específica.]\n"
36
- "[Contexto realista donde el producto se convierte en la solución ideal.]\n"
37
- "Usa un lenguaje persuasivo y directo, destacando cómo el producto resuelve los desafíos de la audiencia de forma única y relevante.\n\n"
38
- )
 
 
39
 
40
- # Generar beneficios con el producto, público objetivo y los problemas/necesidades que se deducen
41
  benefits = []
 
42
  for point in focus_points:
43
- # Formato del prompt para cada enfoque
44
- focus_prompt = prompt.format(
45
- product=product,
46
- target_audience=target_audience
47
- )
48
 
49
- benefits.append(
50
- f"Enfoque: {point}.\n{focus_prompt}"
51
- )
52
-
 
53
  return benefits
54
 
55
- # Configurar la interfaz de usuario con Streamlit
56
  st.set_page_config(page_title="Quick Prompt", layout="wide")
57
 
58
  # Leer el contenido del archivo manual.md
@@ -66,46 +68,11 @@ st.sidebar.markdown(manual_content)
66
  st.markdown("<h1 style='text-align: center;'>Impact Bullet Generator</h1>", unsafe_allow_html=True)
67
  st.markdown("<h4 style='text-align: center;'>Transforma los pensamientos de tu audiencia en beneficios persuasivos que inspiren a la acción.</h4>", unsafe_allow_html=True)
68
 
69
- # Añadir CSS personalizado para el botón
70
- st.markdown("""
71
- <style>
72
- div.stButton > button {
73
- background-color: #FFCC00;
74
- color: black;
75
- width: 90%;
76
- height: 60px;
77
- font-weight: bold;
78
- font-size: 22px;
79
- text-transform: uppercase;
80
- border: 1px solid #000000;
81
- border-radius: 8px;
82
- display: block;
83
- margin: 0 auto;
84
- }
85
- div.stButton > button:hover {
86
- background-color: #FFD700;
87
- color: black;
88
- }
89
- </style>
90
- """, unsafe_allow_html=True)
91
-
92
  # Crear columnas
93
- col1, col2 = st.columns([1, 2])
94
 
95
  # Columnas de entrada
96
  with col1:
97
- with st.expander("Enfoques para los beneficios"):
98
- st.markdown("""
99
- 1. **Curiosidad**
100
- - Su función es dejar al lector enganchado, queriendo saber más.
101
- 2. **CASI Imposible**
102
- - Afirmaciones que parecen difíciles de creer, pero no son completamente irreales.
103
- 3. **Autoridad y Credibilidad**
104
- - Establece confianza mediante hechos respaldados.
105
- 4. **Contraste**
106
- - Confronta ideas para captar la atención.
107
- """)
108
-
109
  focus_points = st.multiselect(
110
  "Selecciona los enfoques que deseas utilizar:",
111
  ["Curiosidad", "CASI Imposible", "Autoridad y Credibilidad", "Contraste"],
 
3
  import os
4
  import google.generativeai as genai
5
 
 
6
  load_dotenv()
7
 
 
8
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
9
 
10
+ # Función para generar los beneficios (bullets) basados en el enfoque
11
  def generate_benefits(focus_points, product, target_audience):
12
+ model = genai.GenerativeModel("gemini-1.5-flash")
13
+
14
+ # Base del prompt para generar los bullets persuasivos
15
+ prompt_base = f"""
16
+ Eres un experto en copywriting y tu objetivo es crear bullets persuasivos que destaquen los beneficios del producto,
17
+ conecten emocionalmente con la audiencia y respondan a sus problemas, necesidades, deseos o situaciones específicas.\n\n
18
+ Ten en cuenta lo siguiente:\n
19
+ - Los bullets son pequeños anzuelos diseñados para captar la atención de inmediato, como tráilers de películas que dejan a la audiencia queriendo más.\n
20
+ - Ayudan a evitar textos largos y monótonos, destacando tanto beneficios emocionales como prácticos.\n
21
+ - Los beneficios deben ser relevantes, concisos y específicos, mostrando cómo el producto puede transformar o mejorar la vida de la audiencia.\n\n
22
+ Ahora, crea una lista de beneficios para el siguiente producto y nicho objetivo. Si no se especifican problemas, necesidades, deseos o situaciones,
23
+ identifica ejemplos comunes relevantes para el nicho objetivo proporcionado y asocia estos problemas con el producto.\n\n
24
+ Producto: {product}\n
25
+ Nicho objetivo: {target_audience}\n\n
26
+ Ejemplos de problemas, necesidades, deseos o situaciones comunes para este nicho objetivo pueden incluir:\n
27
+ - Desafíos comunes en el nicho, como falta de tiempo, dinero, habilidades, etc.\n
28
+ - Necesidades específicas del público objetivo que el producto puede solucionar.\n
29
+ - Deseos o aspiraciones que este público busca cumplir.\n\n
30
+ Por ejemplo:\n
31
+ "Si el nicho objetivo es 'emprendedores', los problemas pueden ser: 'No saber cómo atraer clientes', 'Falta de tiempo para manejar todos los aspectos del negocio', 'Dificultad para encontrar clientes de calidad'.\n
32
+ "Si el nicho objetivo es 'madres primerizas', los problemas pueden ser: 'Falta de tiempo para balancear la vida personal y profesional', 'Preocupación por la salud del bebé', 'Estrés por la falta de apoyo'.\n\n
33
+ Una vez que hayas identificado estos problemas, necesidades o deseos, crea bullets que respondan a ellos con el siguiente formato:\n\n
34
+ [Beneficio práctico o emocional que resuena con la audiencia.]\n
35
+ [Impacto positivo directo que el producto puede generar en la vida de la audiencia.]\n
36
+ [Razón única que hace que el producto sea indispensable para resolver un problema o situación específica.]\n
37
+ [Contexto realista donde el producto se convierte en la solución ideal.]\n
38
+ Usa un lenguaje persuasivo y directo, destacando cómo el producto resuelve los desafíos de la audiencia de forma única y relevante.\n\n
39
+ """
40
 
 
41
  benefits = []
42
+ # Crear el prompt específico para cada enfoque y enviarlo al modelo
43
  for point in focus_points:
44
+ # Crear el prompt para el enfoque seleccionado
45
+ specific_prompt = prompt_base + f"\n\nEnfoque: {point}\n"
46
+
47
+ # Generar los beneficios con la API de Google
48
+ response = model.generate_content([specific_prompt])
49
 
50
+ if response and response.parts:
51
+ benefits.append(response.parts[0].text.strip())
52
+ else:
53
+ benefits.append("Lo siento, no se pudieron generar los beneficios para este enfoque.")
54
+
55
  return benefits
56
 
57
+ # Configuración de Streamlit
58
  st.set_page_config(page_title="Quick Prompt", layout="wide")
59
 
60
  # Leer el contenido del archivo manual.md
 
68
  st.markdown("<h1 style='text-align: center;'>Impact Bullet Generator</h1>", unsafe_allow_html=True)
69
  st.markdown("<h4 style='text-align: center;'>Transforma los pensamientos de tu audiencia en beneficios persuasivos que inspiren a la acción.</h4>", unsafe_allow_html=True)
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  # Crear columnas
72
+ col1, col2 = st.columns([1, 2])
73
 
74
  # Columnas de entrada
75
  with col1:
 
 
 
 
 
 
 
 
 
 
 
 
76
  focus_points = st.multiselect(
77
  "Selecciona los enfoques que deseas utilizar:",
78
  ["Curiosidad", "CASI Imposible", "Autoridad y Credibilidad", "Contraste"],