JeCabrera commited on
Commit
a367fcc
·
verified ·
1 Parent(s): a91d08b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -112
app.py CHANGED
@@ -1,122 +1,43 @@
1
- from dotenv import load_dotenv
2
- import streamlit as st
3
  import os
 
4
  import google.generativeai as genai
5
- from bullet_formulas import bullet_formulas
6
- from style import styles
7
- from prompts import create_instruction
8
- from angles import bullet_angles
9
 
10
- # Cargar las variables de entorno
11
  load_dotenv()
12
-
13
- # Configurar la API de Google
14
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
15
 
16
- # Función para generar bullets de beneficios
17
- @st.cache_resource
18
- def get_model(temperature):
19
- generation_config = {
20
- "temperature": temperature,
 
21
  }
22
- return genai.GenerativeModel('gemini-2.0-flash', generation_config=generation_config)
23
-
24
- # Update the generate_benefits function to include selected_angle
25
- def generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula, selected_angle):
26
- if not target_audience or not product:
27
- return "Por favor, completa todos los campos requeridos."
28
-
29
- model = get_model(temperature)
30
- benefits_instruction = create_instruction(
31
- number_of_benefits,
32
- target_audience,
33
- product,
34
- selected_formula,
35
- selected_angle
36
  )
37
-
38
- response = model.generate_content([benefits_instruction], generation_config={"temperature": temperature})
39
- return response.parts[0].text if response and response.parts else "Error generating content."
40
-
41
- # Configurar la interfaz de usuario con Streamlit
42
- st.set_page_config(page_title="Bullet Benefits Generator", layout="wide")
43
-
44
- # Leer el contenido del archivo manual.md
45
- with open("manual.md", "r", encoding="utf-8") as file:
46
- manual_content = file.read()
47
-
48
- # Mostrar el contenido del manual en el sidebar
49
- st.sidebar.markdown(manual_content)
50
-
51
- # Ocultar elementos de la interfaz
52
- st.markdown(styles["main_layout"], unsafe_allow_html=True)
53
-
54
- # Centrar el título y el subtítulo
55
- st.markdown("<h1 style='text-align: center;'>Bullet Benefits Generator</h1>", unsafe_allow_html=True)
56
- st.markdown("<h4 style='text-align: center;'>Transforma características en beneficios irresistibles que conectan emocionalmente con tu audiencia.</h4>", unsafe_allow_html=True)
57
-
58
- # Añadir CSS personalizado para el botón
59
- st.markdown(styles["button"], unsafe_allow_html=True)
60
-
61
- # Crear columnas
62
- col1, col2 = st.columns([1, 2])
63
-
64
- # Columnas de entrada
65
- # Inside the column section
66
- with col1:
67
- target_audience = st.text_input("¿Quién es tu público objetivo?", placeholder="Ejemplo: Estudiantes Universitarios")
68
- product = st.text_input("¿Qué producto tienes en mente?", placeholder="Ejemplo: Curso de Inglés")
69
- number_of_benefits = st.selectbox("Número de Beneficios", options=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=4)
70
-
71
- # Fix indentation - remove extra spaces
72
- with st.expander("Opciones avanzadas"):
73
- selected_formula_key = st.selectbox(
74
- "Tipo de bullet", # Added label
75
- options=list(bullet_formulas.keys()),
76
- label_visibility="visible"
77
- )
78
- selected_formula = bullet_formulas[selected_formula_key]
79
-
80
- selected_angle_key = st.selectbox(
81
- "Ángulo del bullet", # Added label
82
- options=list(bullet_angles.keys()),
83
- label_visibility="visible"
84
- )
85
- selected_angle = bullet_angles[selected_angle_key]
86
-
87
- temperature = st.slider(
88
- "Nivel de creatividad", # Added label
89
- min_value=0.0,
90
- max_value=2.0,
91
- value=1.0,
92
- step=0.1,
93
- label_visibility="visible"
94
- )
95
-
96
- submit = st.button("GENERAR LOS BULLETS POINTS")
97
 
98
- # Mostrar los beneficios generados
99
- # Update the submit section to include selected_angle
100
- if submit:
101
- if target_audience and product and selected_formula:
102
- with st.spinner('Generando beneficios...'):
103
- generated_benefits = generate_benefits(
104
- number_of_benefits,
105
- target_audience,
106
- product,
107
- temperature,
108
- selected_formula,
109
- selected_angle
110
- )
111
- if not isinstance(generated_benefits, str):
112
- col2.error("Error al generar beneficios")
113
- else:
114
- col2.markdown(f"""
115
- <div style="{styles['results_container']}">
116
- <h3>Beneficios Generados:</h3>
117
- <p>{generated_benefits}</p>
118
- </div>
119
- """, unsafe_allow_html=True)
120
 
121
- else:
122
- col2.warning("Por favor, completa todos los campos antes de generar beneficios.")
 
 
 
1
  import os
2
+ import gradio as gr
3
  import google.generativeai as genai
4
+ from dotenv import load_dotenv
5
+ from prompts import system_prompt
 
 
6
 
 
7
  load_dotenv()
 
 
8
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
9
 
10
+ model = genai.GenerativeModel(
11
+ model_name="gemini-2.0-flash",
12
+ generation_config={
13
+ "temperature": 0.9,
14
+ "top_p": 1,
15
+ "max_output_tokens": 2048,
16
  }
17
+ )
18
+
19
+ def chat(message, history):
20
+ return (
21
+ f"{system_prompt}\n\n"
22
+ f"User Message: {message}\n"
23
+ f"Previous Context: {history if history else 'No previous context'}\n"
24
+ f"Remember to maintain the friendly and helpful tone of Chucho Bot, "
25
+ f"focusing only on CopyXpert course information and benefits."
 
 
 
 
 
26
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
+ demo = gr.ChatInterface(
29
+ fn=chat,
30
+ examples=[
31
+ "¿Qué incluye el curso CopyXpert?",
32
+ "¿Cuál es el precio del curso?",
33
+ "¿Cómo puedo inscribirme?",
34
+ "¿Qué beneficios obtendré?",
35
+ "¿Cuál es la metodología del curso?",
36
+ "¿Necesito experiencia previa?"
37
+ ],
38
+ title="🤖Chucho Bot - CopyXpert Sales Assistant",
39
+ description="¡Hola! Soy Chucho Bot, tu asistente personal para el curso CopyXpert. ¿Cómo puedo ayudarte hoy?"
40
+ )
41
+
42
+ demo.launch()
 
 
 
 
 
 
 
43