JeCabrera commited on
Commit
b94ad49
·
verified ·
1 Parent(s): 3421ae5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -28
app.py CHANGED
@@ -28,28 +28,41 @@ def get_mention_instruction(product_mention, product):
28
 
29
  # Ejemplos de llamados a la acción por tipo
30
  cta_types = {
 
 
 
 
 
 
 
31
  "urgencia": [
32
- "Inscríbete ahora y asegúrate tu lugar antes de que se agoten las plazas.",
33
- "No pierdas más tiempo, comienza tu transformación hoy.",
34
  ],
35
  "descuento": [
36
- "Aprovecha el 50% de descuento por tiempo limitado.",
37
- "Haz tu pedido ahora y obtén un 30% de descuento adicional.",
38
  ],
39
  "exclusividad": [
40
- "Accede de inmediato a nuestro contenido exclusivo solo para miembros.",
41
- " parte de este grupo selecto y disfruta de beneficios únicos.",
42
  ],
43
  "beneficio_claro": [
44
- "Mejora tu productividad en solo una semana.",
45
- "Transforma tu carrera profesional con nuestras herramientas avanzadas.",
46
  ],
47
  "personalización": [
48
- "Descubre cómo podemos personalizar esta oferta para ti.",
49
- "Hazlo tuyo: elige las opciones que mejor se adapten a tus necesidades.",
50
- ],
51
  }
52
 
 
 
 
 
 
 
53
  # Función para generar llamados a la acción
54
  def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature):
55
  product_mention = get_random_product_mention()
@@ -64,31 +77,45 @@ def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temp
64
  "response_mime_type": "text/plain",
65
  }
66
 
 
67
  model = genai.GenerativeModel(
68
- model_name="gemini-1.5-flash",
69
- generation_config=generation_config,
70
- system_instruction="You are a world-class copywriter with expertise in crafting action-driven CTAs that convert. Your task is to create action-oriented, high-conversion CTAs tailored for specific audiences. Focus on urgency, clear benefits, and strong motivations to encourage immediate action. Use Spanish and provide results in a numbered list format."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  )
72
 
73
- # Crear un mensaje para el modelo que incluye tipos específicos de CTA
74
  selected_types = random.sample(list(cta_types.keys()), min(number_of_ctas, len(cta_types)))
 
 
75
  ctas_instruction = (
76
  f"Tu tarea es crear {number_of_ctas} llamados a la acción efectivos dirigidos a {target_audience}, "
77
  f"para promover {call_to_action}. Usa la siguiente mención: {mention_instruction}. "
78
- "Asegúrate de utilizar diferentes estilos de CTA en la salida."
79
- )
80
-
81
- chat_session = model.start_chat(
82
- history=[
83
- {
84
- "role": "user",
85
- "parts": [ctas_instruction],
86
- },
87
- ]
88
  )
89
 
90
- response = chat_session.send_message("Genera los llamados a la acción") # Enviar mensaje para obtener la respuesta
91
- return response.text # Regresar la respuesta directamente
 
 
 
92
 
93
  # Configurar la interfaz de usuario con Streamlit
94
  st.set_page_config(page_title="Enchanted CTAs", layout="wide")
@@ -149,4 +176,4 @@ if submit:
149
  except ValueError as e:
150
  col2.error(f"Error: {str(e)}")
151
  else:
152
- col2.error("Por favor, proporciona el público objetivo, el producto y la acción.")
 
28
 
29
  # Ejemplos de llamados a la acción por tipo
30
  cta_types = {
31
+ "directos": [
32
+ "Descargar la guía para mejorar mi productividad diaria.",
33
+ "Suscribirme para recibir actualizaciones y promociones exclusivas.",
34
+ "Unirme a la prueba gratis de 14 días y descubrir nuevas funciones.",
35
+ "Registrarme para acceder a contenido premium y estrategias efectivas.",
36
+ "Comprar ahora y obtener un regalo especial con mi pedido."
37
+ ],
38
  "urgencia": [
39
+ "Inscribirme ahora para asegurar mi lugar antes de que se agoten las plazas.",
40
+ "Comenzar mi transformación hoy y no perder más tiempo."
41
  ],
42
  "descuento": [
43
+ "Aprovechar el 50% de descuento y comprar por tiempo limitado.",
44
+ "Hacer mi pedido ahora y obtener un 30% de descuento adicional."
45
  ],
46
  "exclusividad": [
47
+ "Acceder a contenido exclusivo solo para miembros.",
48
+ "Ser parte de un grupo selecto y disfrutar de beneficios únicos."
49
  ],
50
  "beneficio_claro": [
51
+ "Mejorar mi productividad en solo una semana.",
52
+ "Transformar mi carrera profesional con herramientas avanzadas."
53
  ],
54
  "personalización": [
55
+ "Descubrir cómo personalizar esta oferta para mis necesidades.",
56
+ "Elegir las opciones que mejor se adapten a mis necesidades."
57
+ ]
58
  }
59
 
60
+ # Función para que el modelo elija automáticamente el tipo de CTA y el CTA específico
61
+ def get_random_cta():
62
+ cta_type = random.choice(list(cta_types.keys())) # Selección aleatoria del tipo de CTA
63
+ cta = random.choice(cta_types[cta_type]) # Selección aleatoria del CTA dentro del tipo
64
+ return cta
65
+
66
  # Función para generar llamados a la acción
67
  def generate_ctas(number_of_ctas, target_audience, product, call_to_action, temperature):
68
  product_mention = get_random_product_mention()
 
77
  "response_mime_type": "text/plain",
78
  }
79
 
80
+ # Configuración del modelo generativo y las instrucciones del sistema
81
  model = genai.GenerativeModel(
82
+ model_name="gemini-1.5-flash", # Nombre del modelo que estamos utilizando
83
+ generation_config=generation_config, # Configuración de generación
84
+ system_instruction=(
85
+ "Eres un experto copywriter especializado en productos que solucionan problemas de tus clientes. "
86
+ "Tu tarea es ayudarme a escribir llamados a la acción (CTA) para mi [página web, landing, correo], "
87
+ "teniendo en cuenta los puntos débiles de mi [cliente ideal] y el [producto] y la [acción] a realizar. "
88
+ "Recuerda que un buen CTA debe tener:\n\n"
89
+ "1. **Acción**: Palabras que invitan a realizar un movimiento (e.g., 'Descargar', 'Suscribirse').\n"
90
+ "2. **Valor**: Explicar el beneficio que el usuario obtendrá al realizar la acción.\n\n"
91
+ "Basate en estos ejemplos para realizar tu tarea de crear los CTA's:\n\n"
92
+ "**Ejemplos de CTAs en Voz Activa en Primera Persona:**\n"
93
+ "- 'Descargar la guía para mejorar mi productividad diaria'\n"
94
+ " - Acción: Descargo\n"
95
+ " - Valor: Mejorar mi productividad diaria\n\n"
96
+ "- 'Suscribirme para recibir actualizaciones y promociones exclusivas'\n"
97
+ " - Acción: Me suscribo\n"
98
+ " - Valor: Recibir actualizaciones y promociones exclusivas\n\n"
99
+ "Usa estos lineamientos para generar CTAs de alta conversión en español."
100
+ )
101
  )
102
 
103
+ # Selección aleatoria de tipos de CTA, manteniendo variedad en la salida
104
  selected_types = random.sample(list(cta_types.keys()), min(number_of_ctas, len(cta_types)))
105
+
106
+ # Crear un mensaje para el modelo que incluye los CTAs generados según los tipos seleccionados
107
  ctas_instruction = (
108
  f"Tu tarea es crear {number_of_ctas} llamados a la acción efectivos dirigidos a {target_audience}, "
109
  f"para promover {call_to_action}. Usa la siguiente mención: {mention_instruction}. "
110
+ "Asegúrate de que cada llamado a la acción siga la estructura de acción y valor, "
111
+ "como los ejemplos proporcionados anteriormente."
 
 
 
 
 
 
 
 
112
  )
113
 
114
+ # Generar el resultado utilizando el modelo con la instrucción de CTA específica
115
+ response = model.generate_message(ctas_instruction)
116
+
117
+ # Retornar el resultado
118
+ return response
119
 
120
  # Configurar la interfaz de usuario con Streamlit
121
  st.set_page_config(page_title="Enchanted CTAs", layout="wide")
 
176
  except ValueError as e:
177
  col2.error(f"Error: {str(e)}")
178
  else:
179
+ col2.error("Por favor, proporciona el público objetivo, el producto y la acción.")