JeCabrera commited on
Commit
2e2edd1
·
verified ·
1 Parent(s): e970207

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -120
app.py CHANGED
@@ -51,131 +51,31 @@ col1, col2 = st.columns([4, 6])
51
  with col1:
52
  # Keep only the manual input tab
53
  with st.container():
54
- skills = st.text_area('💪 Tus Habilidades', height=70,
55
- help='Lista tus habilidades y experiencia clave')
56
- product_service = st.text_area('🎯 Producto/Servicio', height=70,
57
- help='Describe tu producto o servicio')
58
-
59
- # Accordion for additional settings
60
- with st.expander('⚙️ Configuración Avanzada'):
61
- target_audience = st.text_area('👥 Público Objetivo', height=70,
62
- help='Describe tu cliente o público ideal')
63
 
64
- # Add file/image uploader here
65
- uploaded_file = st.file_uploader("📄 Sube un archivo o imagen",
66
- type=['txt', 'pdf', 'docx', 'jpg', 'jpeg', 'png'])
67
 
68
- if uploaded_file is not None:
69
- file_type = uploaded_file.name.split('.')[-1].lower()
70
-
71
- # Handle text files
72
- if file_type in ['txt', 'pdf', 'docx']:
73
- if file_type == 'txt':
74
- try:
75
- file_content = uploaded_file.read().decode('utf-8')
76
- except Exception as e:
77
- st.error(f"Error al leer el archivo TXT: {str(e)}")
78
- file_content = ""
79
-
80
- elif file_type == 'pdf':
81
- try:
82
- import PyPDF2
83
- pdf_reader = PyPDF2.PdfReader(uploaded_file)
84
- file_content = ""
85
- for page in pdf_reader.pages:
86
- file_content += page.extract_text() + "\n"
87
- except Exception as e:
88
- st.error(f"Error al leer el archivo PDF: {str(e)}")
89
- file_content = ""
90
-
91
- elif file_type == 'docx':
92
- try:
93
- import docx
94
- doc = docx.Document(uploaded_file)
95
- file_content = "\n".join([para.text for para in doc.paragraphs])
96
- except Exception as e:
97
- st.error(f"Error al leer el archivo DOCX: {str(e)}")
98
- file_content = ""
99
-
100
- # Remove success message - no notification shown
101
-
102
- # Set file type flag
103
- is_image = False
104
-
105
- # Handle image files
106
- elif file_type in ['jpg', 'jpeg', 'png']:
107
- try:
108
- image = Image.open(uploaded_file)
109
- st.image(image, caption="Imagen cargada", use_container_width=True)
110
-
111
- image_bytes = uploaded_file.getvalue()
112
- image_parts = [
113
- {
114
- "mime_type": uploaded_file.type,
115
- "data": image_bytes
116
- }
117
- ]
118
-
119
- # Set file type flag
120
- is_image = True
121
- except Exception as e:
122
- st.error(f"Error al procesar la imagen: {str(e)}")
123
- is_image = False
124
 
125
- # Selector de fórmula
126
- formula_type = st.selectbox(
127
- '📋 Tipo de Fórmula',
128
- options=list(offer_formulas.keys()),
129
- help='Selecciona el tipo de fórmula para tu oferta'
130
- )
131
 
132
- temperature = st.slider('🌡️ Nivel de Creatividad', min_value=0.0, max_value=2.0, value=0.7,
133
- help='Valores más altos hacen que el resultado sea más creativo pero menos enfocado')
134
-
135
- def generate_offer():
136
- has_manual_input = bool(skills or product_service)
137
- has_file_input = bool(uploaded_file is not None and not is_image)
138
- has_image_input = bool(uploaded_file is not None and is_image)
139
-
140
- # Simple validation - check if we have at least one input type
141
- if not (has_manual_input or has_file_input or has_image_input):
142
- st.error('Por favor ingresa texto o sube un archivo/imagen')
143
- return
144
-
145
- st.session_state.submitted = True
146
- st.session_state.generated = False # Reset generated flag
147
-
148
- # Store inputs based on what's available
149
- if has_manual_input:
150
- st.session_state.skills = skills if skills else ""
151
- st.session_state.product_service = product_service if product_service else ""
152
-
153
- if has_file_input:
154
- st.session_state.file_content = file_content
155
-
156
- if has_image_input:
157
- st.session_state.image_parts = image_parts
158
-
159
- # Set input type based on what's available
160
- if has_image_input:
161
- if has_manual_input:
162
- st.session_state.input_type = "manual_image"
163
- else:
164
- st.session_state.input_type = "image"
165
- else:
166
- if has_manual_input and has_file_input:
167
- st.session_state.input_type = "both"
168
- elif has_file_input:
169
- st.session_state.input_type = "file"
170
- elif has_manual_input:
171
- st.session_state.input_type = "manual"
172
 
173
- # Store common settings
174
- st.session_state.target_audience = target_audience
175
- st.session_state.temperature = temperature
176
- st.session_state.formula_type = formula_type
177
-
178
- st.button('Generar Oferta 🎉', on_click=generate_offer)
179
 
180
  # Results column
181
  with col2:
 
51
  with col1:
52
  # Keep only the manual input tab
53
  with st.container():
54
+ # Input fields for user skills/product/service
55
+ st.markdown("👍 Tus Habilidades")
56
+ skills = st.text_area("", key="skills", height=70)
 
 
 
 
 
 
57
 
58
+ # Input fields for target audience
59
+ st.markdown("🎯 Producto/Servicio")
60
+ target_audience = st.text_area("", key="target_audience", height=70)
61
 
62
+ # Formula type selection
63
+ st.markdown("📝 Tipo de Fórmula")
64
+ formula_type = st.selectbox("", list(offer_formulas.keys()), key="formula_type")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
+ # Creativity level slider
67
+ st.markdown("🌡️ Nivel de Creatividad")
68
+ creativity = st.slider("", min_value=0.0, max_value=2.0, value=1.0, step=0.01, key="creativity")
 
 
 
69
 
70
+ # Generate button - MOVED UP before the advanced configuration
71
+ if st.button("Generar Oferta 🔥"):
72
+ # Your existing button logic here
73
+ pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
+ # Advanced configuration - NOW AFTER the button
76
+ with st.expander("⚙️ Configuración Avanzada"):
77
+ # Your existing advanced configuration options here
78
+ pass
 
 
79
 
80
  # Results column
81
  with col2: