AIdeaText commited on
Commit
5fcd162
·
verified ·
1 Parent(s): f9706ce

Update modules/studentact/current_situation_interface.py

Browse files
modules/studentact/current_situation_interface.py CHANGED
@@ -160,6 +160,7 @@ def display_current_situation_interface(lang_code, nlp_models, t):
160
 
161
  ###################################3333
162
 
 
163
  def display_results(metrics, text_type=None):
164
  """
165
  Muestra los resultados del análisis: métricas verticalmente y gráfico radar.
@@ -236,8 +237,104 @@ def display_results(metrics, text_type=None):
236
  except Exception as e:
237
  logger.error(f"Error mostrando resultados: {str(e)}")
238
  st.error("Error al mostrar los resultados")
 
239
 
 
 
 
 
 
 
 
 
 
 
 
 
240
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
  ######################################
242
  def display_radar_chart(metrics_config, thresholds):
243
  """
 
160
 
161
  ###################################3333
162
 
163
+ '''
164
  def display_results(metrics, text_type=None):
165
  """
166
  Muestra los resultados del análisis: métricas verticalmente y gráfico radar.
 
237
  except Exception as e:
238
  logger.error(f"Error mostrando resultados: {str(e)}")
239
  st.error("Error al mostrar los resultados")
240
+ '''
241
 
242
+ ######################################
243
+ ######################################
244
+ def display_results(metrics, text_type=None):
245
+ """
246
+ Muestra los resultados del análisis: métricas verticalmente y gráfico radar.
247
+ """
248
+ try:
249
+ # Usar valor por defecto si no se especifica tipo
250
+ text_type = text_type or 'student_essay'
251
+
252
+ # Obtener umbrales según el tipo de texto
253
+ thresholds = TEXT_TYPES[text_type]['thresholds']
254
 
255
+ # Crear dos columnas para las métricas y el gráfico
256
+ metrics_col, graph_col = st.columns([1, 1.5])
257
+
258
+ # Columna de métricas
259
+ with metrics_col:
260
+ metrics_config = [
261
+ {
262
+ 'label': "Vocabulario",
263
+ 'key': 'vocabulary',
264
+ 'value': metrics['vocabulary']['normalized_score'],
265
+ 'help': "Riqueza y variedad del vocabulario",
266
+ 'thresholds': thresholds['vocabulary']
267
+ },
268
+ {
269
+ 'label': "Estructura",
270
+ 'key': 'structure',
271
+ 'value': metrics['structure']['normalized_score'],
272
+ 'help': "Organización y complejidad de oraciones",
273
+ 'thresholds': thresholds['structure']
274
+ },
275
+ {
276
+ 'label': "Cohesión",
277
+ 'key': 'cohesion',
278
+ 'value': metrics['cohesion']['normalized_score'],
279
+ 'help': "Conexión y fluidez entre ideas",
280
+ 'thresholds': thresholds['cohesion']
281
+ },
282
+ {
283
+ 'label': "Claridad",
284
+ 'key': 'clarity',
285
+ 'value': metrics['clarity']['normalized_score'],
286
+ 'help': "Facilidad de comprensión del texto",
287
+ 'thresholds': thresholds['clarity']
288
+ }
289
+ ]
290
+
291
+ # Mostrar métricas
292
+ for metric in metrics_config:
293
+ value = metric['value']
294
+ if value < metric['thresholds']['min']:
295
+ status = "⚠️ Por mejorar"
296
+ color = "inverse"
297
+ elif value < metric['thresholds']['target']:
298
+ status = "📈 Aceptable"
299
+ color = "off"
300
+ else:
301
+ status = "✅ Óptimo"
302
+ color = "normal"
303
+
304
+ st.metric(
305
+ metric['label'],
306
+ f"{value:.2f}",
307
+ f"{status} (Meta: {metric['thresholds']['target']:.2f})",
308
+ delta_color=color,
309
+ help=metric['help']
310
+ )
311
+ st.markdown("<div style='margin-bottom: 0.5rem;'></div>", unsafe_allow_html=True)
312
+
313
+ # Gráfico radar en la columna derecha
314
+ with graph_col:
315
+ display_radar_chart(metrics_config, thresholds)
316
+
317
+ recommendations = generate_recommendations(
318
+ metrics=metrics,
319
+ text_type=text_type,
320
+ lang_code=st.session_state.lang_code
321
+ )
322
+
323
+ # Separador visual
324
+ st.markdown("---")
325
+
326
+ # Título para la sección de recomendaciones
327
+ st.subheader("Recomendaciones para mejorar tu escritura")
328
+
329
+ # Mostrar las recomendaciones
330
+ display_recommendations(recommendations, get_translations(st.session_state.lang_code))
331
+
332
+ except Exception as e:
333
+ logger.error(f"Error mostrando resultados: {str(e)}")
334
+ st.error("Error al mostrar los resultados")
335
+
336
+
337
+ ######################################
338
  ######################################
339
  def display_radar_chart(metrics_config, thresholds):
340
  """