JairoCesar commited on
Commit
9543761
·
verified ·
1 Parent(s): ab68109

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -2
app.py CHANGED
@@ -518,8 +518,43 @@ if st.session_state.search_results is not None:
518
  score_col1.metric("Puntos por Alimento(s)", f"{best_match_data['score']['food']}")
519
  score_col2.metric("Puntos por Síntomas", f"{best_match_data['score']['symptoms']}")
520
  score_col3.metric("PUNTUACIÓN TOTAL", f"{best_match_data['score']['total']}", delta="Máxima coincidencia")
521
- with col2:
522
- st.write("")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
523
  if foodb_index:
524
  with st.popover("🔬 Componentes moleculares"):
525
  st.info("Información de la base de datos FoodB (en inglés).")
 
518
  score_col1.metric("Puntos por Alimento(s)", f"{best_match_data['score']['food']}")
519
  score_col2.metric("Puntos por Síntomas", f"{best_match_data['score']['symptoms']}")
520
  score_col3.metric("PUNTUACIÓN TOTAL", f"{best_match_data['score']['total']}", delta="Máxima coincidencia")
521
+ with col2:
522
+ st.write("") # Para alinear verticalmente el popover
523
+ if foodb_index:
524
+ with st.popover("🔬 Componentes moleculares"):
525
+ st.info("Información de la base de datos FoodB (en inglés).")
526
+ user_foods_mentioned = st.session_state.entities.get("alimentos", [])
527
+
528
+ if not user_foods_mentioned:
529
+ st.warning("No se identificó un alimento específico para buscar.")
530
+ else:
531
+ found_data = False
532
+ displayed_foodb_keys = set()
533
+
534
+ # Iterar sobre los alimentos que el usuario mencionó
535
+ for alimento_es in user_foods_mentioned:
536
+ search_terms_en = []
537
+ # Traducir de español a inglés usando el diccionario
538
+ for key_es, value_en_list in FOOD_NAME_TO_FOODB_KEY.items():
539
+ if key_es in alimento_es.lower():
540
+ search_terms_en.extend(value_en_list)
541
+
542
+ # Buscar los términos en inglés en el índice de FoodB
543
+ for term in set(search_terms_en):
544
+ for foodb_key, foodb_data in foodb_index.items():
545
+ if term in foodb_key and foodb_key not in displayed_foodb_keys:
546
+ found_data = True
547
+ displayed_foodb_keys.add(foodb_key)
548
+ with st.container(border=True):
549
+ st.subheader(f"Análisis de: {foodb_key.capitalize()}")
550
+ # Mostrar los 3 compuestos más relevantes
551
+ for item in foodb_data[:3]:
552
+ st.write(f"**Compuesto:** {item['compound']}")
553
+ st.write(f"**Efectos reportados:** {', '.join(item['effects'])}")
554
+ st.markdown("---")
555
+
556
+ if not found_data:
557
+ st.warning("No se encontraron datos moleculares para los alimentos mencionados.")
558
  if foodb_index:
559
  with st.popover("🔬 Componentes moleculares"):
560
  st.info("Información de la base de datos FoodB (en inglés).")