Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -593,25 +593,14 @@ if st.session_state.search_results is not None:
|
|
| 593 |
st.success(f"Hemos encontrado {len(results)} posible(s) causa(s) relacionada(s) con tu caso.")
|
| 594 |
with col2:
|
| 595 |
report_data = generate_report_text(st.session_state.user_query, results)
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
|
| 604 |
-
results = st.session_state.search_results
|
| 605 |
-
|
| 606 |
-
if not results:
|
| 607 |
-
st.warning(f"No se encontraron coincidencias claras para tu caso: '{st.session_state.user_query}'. Prueba a describir los síntomas de otra manera.")
|
| 608 |
-
else:
|
| 609 |
-
col1, col2 = st.columns([3,1])
|
| 610 |
-
with col1:
|
| 611 |
-
st.success(f"Hemos encontrado {len(results)} posible(s) causa(s) relacionada(s) con tu caso.")
|
| 612 |
-
with col2:
|
| 613 |
-
report_data = generate_report_text(st.session_state.user_query, results)
|
| 614 |
-
st.download_button(label="📄 Descargar Informe", data=report_data, file_name=f"informe_detective_{datetime.now().strftime('%Y%m%d')}.txt", mime="text/plain")
|
| 615 |
|
| 616 |
st.subheader("Análisis de Relevancia de las Coincidencias")
|
| 617 |
st.altair_chart(create_relevance_chart(results), use_container_width=True)
|
|
@@ -619,10 +608,8 @@ if st.session_state.search_results is not None:
|
|
| 619 |
best_match_data = results[0]
|
| 620 |
best_match = best_match_data['entry']
|
| 621 |
with st.expander(f"**Análisis Detallado de la Principal Coincidencia: {best_match.get('condicion_asociada')}**", expanded=True):
|
| 622 |
-
# Las columnas se crean DENTRO del expander
|
| 623 |
col1, col2 = st.columns([3, 1])
|
| 624 |
|
| 625 |
-
# Contenido de la primera columna
|
| 626 |
with col1:
|
| 627 |
st.markdown("##### Desglose de la Puntuación de Relevancia:")
|
| 628 |
score_col1, score_col2, score_col3 = st.columns(3)
|
|
@@ -630,9 +617,8 @@ if st.session_state.search_results is not None:
|
|
| 630 |
score_col2.metric("Puntos por Síntomas", f"{best_match_data['score']['symptoms']}")
|
| 631 |
score_col3.metric("PUNTUACIÓN TOTAL", f"{best_match_data['score']['total']}", delta="Máxima coincidencia")
|
| 632 |
|
| 633 |
-
# Contenido de la segunda columna con el popover de FoodB
|
| 634 |
with col2:
|
| 635 |
-
st.write("")
|
| 636 |
if foodb_index:
|
| 637 |
with st.popover("🔬 Componentes moleculares"):
|
| 638 |
st.info("Información de la base de datos FoodB (en inglés).")
|
|
@@ -667,7 +653,6 @@ if st.session_state.search_results is not None:
|
|
| 667 |
|
| 668 |
st.markdown("---")
|
| 669 |
|
| 670 |
-
# --- NUEVA SECCIÓN INTEGRADA ---
|
| 671 |
with st.container(border=True):
|
| 672 |
st.markdown("##### 🧠 Posibles Efectos Neuropsicológicos de los Componentes")
|
| 673 |
|
|
@@ -680,7 +665,7 @@ if st.session_state.search_results is not None:
|
|
| 680 |
|
| 681 |
found_neuro_effect = False
|
| 682 |
if relevant_compounds:
|
| 683 |
-
for compound in sorted(list(relevant_compounds)):
|
| 684 |
if compound in INTEGRATED_NEURO_FOOD_MAP:
|
| 685 |
found_neuro_effect = True
|
| 686 |
effect_info = INTEGRATED_NEURO_FOOD_MAP[compound]
|
|
|
|
| 593 |
st.success(f"Hemos encontrado {len(results)} posible(s) causa(s) relacionada(s) con tu caso.")
|
| 594 |
with col2:
|
| 595 |
report_data = generate_report_text(st.session_state.user_query, results)
|
| 596 |
+
# --- CORRECCIÓN APLICADA AQUÍ ---
|
| 597 |
+
st.download_button(
|
| 598 |
+
label="📄 Descargar Informe",
|
| 599 |
+
data=report_data,
|
| 600 |
+
file_name=f"informe_detective_{datetime.now().strftime('%Y%m%d')}.txt",
|
| 601 |
+
mime="text/plain",
|
| 602 |
+
key="download_main_report" # Se añade una clave única
|
| 603 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 604 |
|
| 605 |
st.subheader("Análisis de Relevancia de las Coincidencias")
|
| 606 |
st.altair_chart(create_relevance_chart(results), use_container_width=True)
|
|
|
|
| 608 |
best_match_data = results[0]
|
| 609 |
best_match = best_match_data['entry']
|
| 610 |
with st.expander(f"**Análisis Detallado de la Principal Coincidencia: {best_match.get('condicion_asociada')}**", expanded=True):
|
|
|
|
| 611 |
col1, col2 = st.columns([3, 1])
|
| 612 |
|
|
|
|
| 613 |
with col1:
|
| 614 |
st.markdown("##### Desglose de la Puntuación de Relevancia:")
|
| 615 |
score_col1, score_col2, score_col3 = st.columns(3)
|
|
|
|
| 617 |
score_col2.metric("Puntos por Síntomas", f"{best_match_data['score']['symptoms']}")
|
| 618 |
score_col3.metric("PUNTUACIÓN TOTAL", f"{best_match_data['score']['total']}", delta="Máxima coincidencia")
|
| 619 |
|
|
|
|
| 620 |
with col2:
|
| 621 |
+
st.write("")
|
| 622 |
if foodb_index:
|
| 623 |
with st.popover("🔬 Componentes moleculares"):
|
| 624 |
st.info("Información de la base de datos FoodB (en inglés).")
|
|
|
|
| 653 |
|
| 654 |
st.markdown("---")
|
| 655 |
|
|
|
|
| 656 |
with st.container(border=True):
|
| 657 |
st.markdown("##### 🧠 Posibles Efectos Neuropsicológicos de los Componentes")
|
| 658 |
|
|
|
|
| 665 |
|
| 666 |
found_neuro_effect = False
|
| 667 |
if relevant_compounds:
|
| 668 |
+
for compound in sorted(list(relevant_compounds)):
|
| 669 |
if compound in INTEGRATED_NEURO_FOOD_MAP:
|
| 670 |
found_neuro_effect = True
|
| 671 |
effect_info = INTEGRATED_NEURO_FOOD_MAP[compound]
|