JeCabrera commited on
Commit
26ceca9
·
verified ·
1 Parent(s): 02ca255

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -7
app.py CHANGED
@@ -2,6 +2,8 @@ import gradio as gr
2
  import google.generativeai as genai
3
  import os
4
  from dotenv import load_dotenv
 
 
5
 
6
  # Cargar variables de entorno
7
  load_dotenv()
@@ -9,6 +11,10 @@ load_dotenv()
9
  # Configurar la API de Google Gemini
10
  genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
11
 
 
 
 
 
12
  def generate_headlines(number_of_headlines, target_audience, product, temperature):
13
  # Crear la configuración del modelo
14
  generation_config = {
@@ -22,7 +28,7 @@ def generate_headlines(number_of_headlines, target_audience, product, temperatur
22
  model = genai.GenerativeModel(
23
  model_name="gemini-1.5-pro",
24
  generation_config=generation_config,
25
- system_instruction="Eres un copywriter de clase mundial, con experiencia en la creación de ganchos, titulares y líneas de asunto que capturan la atención de inmediato. Tu habilidad radica en comprender profundamente las emociones, deseos y desafíos de una audiencia específica, lo que te permite diseñar estrategias de marketing personalizadas que resuenan y motivan la acción. Sabes cómo utilizar estructuras probadas para atraer a tu audiencia objetivo, generando interés y logrando una conexión poderosa que impulsa los resultados deseados en campañas publicitarias y de contenido. Responde en español, en tipo lista enumerando los encabezados, ponle un título que tenga que ver con los encabezados generados y el producto, sin utilizar Markdown.",
26
  )
27
 
28
  chat_session = model.start_chat(
@@ -37,21 +43,18 @@ def generate_headlines(number_of_headlines, target_audience, product, temperatur
37
  )
38
 
39
  response = chat_session.send_message("Genera los titulares") # Enviar mensaje para obtener la respuesta
40
- return response.text
41
 
42
  # Configurar la interfaz de usuario con Gradio
43
- def gradio_generate_headlines(number_of_headlines, target_audience, product, temperature):
44
- return generate_headlines(number_of_headlines, target_audience, product, temperature)
45
-
46
  iface = gr.Interface(
47
- fn=gradio_generate_headlines,
48
  inputs=[
49
  gr.Dropdown(choices=[str(i) for i in range(1, 11)], label="Número de Titulares", value="5"),
50
  gr.Textbox(label="Público Objetivo", placeholder="Ejemplo: Estudiantes Universitarios"),
51
  gr.Textbox(label="Producto", placeholder="Ejemplo: Curso de Inglés"),
52
  gr.Slider(minimum=0, maximum=1, value=0, step=0.1, label="Creatividad")
53
  ],
54
- outputs=gr.Textbox(label="Titulares Generados", lines=10, placeholder="Los titulares aparecerán aquí..."),
55
  title="Generador de Titulares",
56
  description="Usa el poder de Gemini AI para crear titulares atractivos. Ajusta los parámetros para generar titulares que capturen la atención de tu audiencia."
57
  )
 
2
  import google.generativeai as genai
3
  import os
4
  from dotenv import load_dotenv
5
+ from gradio import Markdown
6
+ import textwrap
7
 
8
  # Cargar variables de entorno
9
  load_dotenv()
 
11
  # Configurar la API de Google Gemini
12
  genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
13
 
14
+ def to_markdown(text):
15
+ text = text.replace('•', ' *') # Convertir los puntos en listas con asteriscos
16
+ return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
17
+
18
  def generate_headlines(number_of_headlines, target_audience, product, temperature):
19
  # Crear la configuración del modelo
20
  generation_config = {
 
28
  model = genai.GenerativeModel(
29
  model_name="gemini-1.5-pro",
30
  generation_config=generation_config,
31
+ system_instruction="Eres un copywriter de clase mundial, con experiencia en la creación de ganchos, titulares y líneas de asunto que capturan la atención de inmediato. Tu habilidad radica en comprender profundamente las emociones, deseos y desafíos de una audiencia específica, lo que te permite diseñar estrategias de marketing personalizadas que resuenan y motivan la acción. Sabes cómo utilizar estructuras probadas para atraer a tu audiencia objetivo, generando interés y logrando una conexión poderosa que impulsa los resultados deseados en campañas publicitarias y de contenido. Responde en español, en tipo lista enumerando los encabezados, ponle un título que tenga que ver con los encabezados generados y el producto",
32
  )
33
 
34
  chat_session = model.start_chat(
 
43
  )
44
 
45
  response = chat_session.send_message("Genera los titulares") # Enviar mensaje para obtener la respuesta
46
+ return to_markdown(response.text) # Usar to_markdown para formatear la respuesta
47
 
48
  # Configurar la interfaz de usuario con Gradio
 
 
 
49
  iface = gr.Interface(
50
+ fn=generate_headlines,
51
  inputs=[
52
  gr.Dropdown(choices=[str(i) for i in range(1, 11)], label="Número de Titulares", value="5"),
53
  gr.Textbox(label="Público Objetivo", placeholder="Ejemplo: Estudiantes Universitarios"),
54
  gr.Textbox(label="Producto", placeholder="Ejemplo: Curso de Inglés"),
55
  gr.Slider(minimum=0, maximum=1, value=0, step=0.1, label="Creatividad")
56
  ],
57
+ outputs=gr.Markdown(label="Titulares Generados"), # Eliminado el placeholder
58
  title="Generador de Titulares",
59
  description="Usa el poder de Gemini AI para crear titulares atractivos. Ajusta los parámetros para generar titulares que capturen la atención de tu audiencia."
60
  )