JeCabrera commited on
Commit
4110f31
verified
1 Parent(s): c91ef6b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -30
app.py CHANGED
@@ -7,6 +7,20 @@ 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, creativity, num_bullets):
12
  model = genai.GenerativeModel("gemini-1.5-flash")
@@ -22,47 +36,49 @@ def generate_benefits(focus_points, product, target_audience, creativity, num_bu
22
  "Respond in Spanish and use a numbered list format. Important: Only answer with subject lines, never include explanations or categories."
23
  )
24
 
25
- # Base del prompt para generar los bullets persuasivos
26
- prompt_base = f"""
27
- Eres un experto en copywriting y tu objetivo es crear {num_bullets} bullets persuasivos que conecten emocionalmente con la audiencia {target_audience}.
28
- Cada bullet debe abordar sus problemas, deseos o situaciones, mostrando c贸mo se pueden mejorar o solucionar gracias a una soluci贸n espec铆fica.
29
- Piensa en c贸mo puedes captar la atenci贸n de la audiencia con frases impactantes, como si estuvieras hablando directamente con ellos. La idea es resaltar el valor que aporta la soluci贸n, sin hacer que el producto suene como una venta forzada.
30
- Los bullets deben ser claros, directos y generar curiosidad, invitando a la acci贸n de manera natural. Evita la jerga t茅cnica y mant茅n la simplicidad, enfoc谩ndote en c贸mo el producto se integra de manera natural en la vida de la audiencia para mejorarla.
31
- Crea {num_bullets} bullets persuasivos que muestren c贸mo el producto puede resolver o transformar una situaci贸n para la audiencia.
32
- Hazlo con un enfoque genuino, sin forzar la menci贸n del producto, pero asegur谩ndote de que quede claro c贸mo puede ser la soluci贸n ideal.
33
- Usa enfoques creativos para conectar los beneficios del producto con lo que realmente le importa a la audiencia.
34
- Ahora, crea una lista de {num_bullets} bullets persuasivos para el siguiente producto y nicho objetivo.\n\n
35
- Producto: {product}\n
36
- Nicho objetivo: {target_audience}\n
37
- """
 
 
 
 
38
 
39
  benefits = []
40
- # Crear el prompt espec铆fico para cada enfoque y enviarlo al modelo
41
- for point in focus_points[:num_bullets]: # Limitar a los bullets indicados por el usuario
42
- # Crear el prompt para el enfoque seleccionado
43
- specific_prompt = prompt_base + f"\n\nEnfoque: {point}\n"
44
-
45
- # Configurar el modelo con par谩metros de generaci贸n
46
- model = genai.GenerativeModel(
 
47
  model_name="gemini-1.5-flash",
48
  generation_config={
49
- "temperature": creativity, # Usar la creatividad para definir la temperatura
50
- "top_p": 0.65, # Probabilidad de tokens para mayor diversidad
51
- "top_k": 280, # N煤mero de tokens que se consideran en cada paso
52
- "max_output_tokens": 2048, # Limitar a 50 tokens para que el bullet sea corto
53
- "response_mime_type": "text/plain", # Respuesta en texto plano
54
  },
55
  system_instruction=system_instruction
56
- )
57
-
58
- # Generar los beneficios con la API de Google
59
- response = model.generate_content([specific_prompt])
60
 
61
  if response and response.parts:
62
  bullet = response.parts[0].text.strip()
63
  benefits.append(bullet)
64
  else:
65
- benefits.append("Lo siento, no se pudieron generar los beneficios para este enfoque.")
66
 
67
  return benefits
68
 
 
7
 
8
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
9
 
10
+ # Funci贸n para obtener una menci贸n del producto de manera probabil铆stica
11
+ def get_random_product_mention():
12
+ mentions = ["Indirecta", "Metaf贸rica"]
13
+ probabilities = [0.50, 0.50]
14
+ return random.choices(mentions, probabilities)[0]
15
+
16
+ # Crear la instrucci贸n de menci贸n basada en la opci贸n seleccionada
17
+ def get_mention_instruction(product_mention, product):
18
+ if product_mention == "Indirecta":
19
+ return f"Referencia sutilmente el producto '{product}' como una posible soluci贸n al problema del lector sin nombrarlo expl铆citamente."
20
+ elif product_mention == "Metaf贸rica":
21
+ return f"Introduce el producto '{product}' usando una met谩fora, conect谩ndolo simb贸licamente a la soluci贸n que necesita el lector."
22
+ return ""
23
+
24
  # Funci贸n para generar los beneficios (bullets) basados en el enfoque
25
  def generate_benefits(focus_points, product, target_audience, creativity, num_bullets):
26
  model = genai.GenerativeModel("gemini-1.5-flash")
 
36
  "Respond in Spanish and use a numbered list format. Important: Only answer with subject lines, never include explanations or categories."
37
  )
38
 
39
+ # Modificaci贸n en el prompt para integrar menciones del producto
40
+ prompt_base = f"""
41
+ Eres un experto en copywriting y tu objetivo es crear {{num_bullets}} bullets persuasivos que conecten emocionalmente con la audiencia {{target_audience}}.
42
+ Cada bullet debe abordar sus problemas, deseos o situaciones, mostrando c贸mo se pueden mejorar o solucionar gracias a una soluci贸n espec铆fica.
43
+ Piensa en c贸mo puedes captar la atenci贸n de la audiencia con frases impactantes, como si estuvieras hablando directamente con ellos.
44
+ La idea es resaltar el valor que aporta la soluci贸n, sin hacer que el producto suene como una venta forzada.
45
+ Adem谩s, aseg煤rate de mencionar el producto utilizando el siguiente enfoque: {{mention_instruction}}.
46
+ Los bullets deben ser claros, directos y generar curiosidad, invitando a la acci贸n de manera natural.
47
+ Evita la jerga t茅cnica y mant茅n la simplicidad, enfoc谩ndote en c贸mo el producto se integra de manera natural en la vida de la audiencia para mejorarla.
48
+ Usa enfoques creativos para conectar los beneficios del producto con lo que realmente le importa a la audiencia.
49
+ Crea {{num_bullets}} bullets persuasivos que muestren c贸mo el producto puede resolver o transformar una situaci贸n para la audiencia.
50
+ """
51
+
52
+ # Generaci贸n del prompt espec铆fico con menci贸n
53
+ def generate_benefits(focus_points, product, target_audience, creativity, num_bullets):
54
+ product_mention = get_random_product_mention()
55
+ mention_instruction = get_mention_instruction(product_mention, product)
56
 
57
  benefits = []
58
+ for point in focus_points[:num_bullets]:
59
+ specific_prompt = prompt_base.format(
60
+ num_bullets=num_bullets,
61
+ target_audience=target_audience,
62
+ mention_instruction=mention_instruction
63
+ ) + f"\n\nEnfoque: {point}\n"
64
+
65
+ response = genai.GenerativeModel(
66
  model_name="gemini-1.5-flash",
67
  generation_config={
68
+ "temperature": creativity,
69
+ "top_p": 0.65,
70
+ "top_k": 280,
71
+ "max_output_tokens": 2048,
72
+ "response_mime_type": "text/plain",
73
  },
74
  system_instruction=system_instruction
75
+ ).generate_content([specific_prompt])
 
 
 
76
 
77
  if response and response.parts:
78
  bullet = response.parts[0].text.strip()
79
  benefits.append(bullet)
80
  else:
81
+ benefits.append("No se pudo generar un beneficio para este enfoque.")
82
 
83
  return benefits
84