vvillarreal-cfee commited on
Commit
d4fbeb6
·
1 Parent(s): 0627dbe

Refactor Streamlit app: unify key names for input fields and clarify state management for precompletion

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +8 -7
src/streamlit_app.py CHANGED
@@ -26,7 +26,7 @@ with st.expander("ℹ️ Dejar que la IA precomplete los campos", expanded=False
26
  "Texto de la alerta/incidente (puede pegar aquí el mensaje completo)",
27
  value=st.session_state['raw_text'],
28
  height=120,
29
- key="raw_text_area"
30
  )
31
 
32
  # Botón para precompletar los campos con IA
@@ -77,7 +77,8 @@ def precompletar_campos_con_ia(api_key, raw_text):
77
 
78
  # Si el usuario presiona el botón de precompletar
79
  if precomplete:
80
- st.session_state['raw_text'] = raw_text
 
81
  st.session_state['precomplete_triggered'] = True
82
  api_key = st.session_state.get('gemini_api_key')
83
  if not api_key:
@@ -174,20 +175,20 @@ with st.form("post_mortem_form"):
174
  "Tipo de Alerta / Título del Problema",
175
  value=st.session_state.get('tipo_alerta', ''),
176
  placeholder="Ej: High CPU usage en DB Server; Caída del servicio de Login",
177
- key="tipo_alerta_input"
178
  )
179
  sistema_afectado = st.text_input(
180
  "Sistema Afectado",
181
  value=st.session_state.get('sistema_afectado', ''),
182
  placeholder="Ej: Servidor de Base de Datos; Microservicio de Autenticación",
183
- key="sistema_afectado_input"
184
  )
185
  with col2:
186
  fecha_hora = st.text_input(
187
  "Fecha y Hora",
188
  value=st.session_state.get('fecha_hora', ''),
189
  placeholder="Ej: 26/Sep/2025 21:45 PM UTC-3",
190
- key="fecha_hora_input"
191
  )
192
  st.subheader("Descripción y Consecuencias")
193
  impacto_detalle = st.text_area(
@@ -195,14 +196,14 @@ with st.form("post_mortem_form"):
195
  value=st.session_state.get('impacto_detalle', ''),
196
  placeholder="Ej: Latencia elevada afectó al 20% de los usuarios.",
197
  height=150,
198
- key="impacto_detalle_input"
199
  )
200
  acciones_tomadas = st.text_area(
201
  "Acciones Tomadas (Mitigación Inmediata)",
202
  value=st.session_state.get('acciones_tomadas', ''),
203
  placeholder="Ej: Se escaló a Dev Team. Se reinició el servicio crítico.",
204
  height=150,
205
- key="acciones_tomadas_input"
206
  )
207
  # Botón de envío
208
  submitted = st.form_submit_button("🚀 Generar Informe Post-Mortem")
 
26
  "Texto de la alerta/incidente (puede pegar aquí el mensaje completo)",
27
  value=st.session_state['raw_text'],
28
  height=120,
29
+ key="raw_text"
30
  )
31
 
32
  # Botón para precompletar los campos con IA
 
77
 
78
  # Si el usuario presiona el botón de precompletar
79
  if precomplete:
80
+ # No reasignar st.session_state['raw_text'] aquí: el widget con key 'raw_text'
81
+ # ya fue instanciado arriba y Streamlit no permite modificarlo después.
82
  st.session_state['precomplete_triggered'] = True
83
  api_key = st.session_state.get('gemini_api_key')
84
  if not api_key:
 
175
  "Tipo de Alerta / Título del Problema",
176
  value=st.session_state.get('tipo_alerta', ''),
177
  placeholder="Ej: High CPU usage en DB Server; Caída del servicio de Login",
178
+ key="tipo_alerta"
179
  )
180
  sistema_afectado = st.text_input(
181
  "Sistema Afectado",
182
  value=st.session_state.get('sistema_afectado', ''),
183
  placeholder="Ej: Servidor de Base de Datos; Microservicio de Autenticación",
184
+ key="sistema_afectado"
185
  )
186
  with col2:
187
  fecha_hora = st.text_input(
188
  "Fecha y Hora",
189
  value=st.session_state.get('fecha_hora', ''),
190
  placeholder="Ej: 26/Sep/2025 21:45 PM UTC-3",
191
+ key="fecha_hora"
192
  )
193
  st.subheader("Descripción y Consecuencias")
194
  impacto_detalle = st.text_area(
 
196
  value=st.session_state.get('impacto_detalle', ''),
197
  placeholder="Ej: Latencia elevada afectó al 20% de los usuarios.",
198
  height=150,
199
+ key="impacto_detalle"
200
  )
201
  acciones_tomadas = st.text_area(
202
  "Acciones Tomadas (Mitigación Inmediata)",
203
  value=st.session_state.get('acciones_tomadas', ''),
204
  placeholder="Ej: Se escaló a Dev Team. Se reinició el servicio crítico.",
205
  height=150,
206
+ key="acciones_tomadas"
207
  )
208
  # Botón de envío
209
  submitted = st.form_submit_button("🚀 Generar Informe Post-Mortem")