JairoCesar commited on
Commit
9d4ea9e
·
verified ·
1 Parent(s): 00bdbae

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -30
app.py CHANGED
@@ -1067,39 +1067,15 @@ if st.session_state.search_results is not None:
1067
  if not results:
1068
  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.")
1069
  else:
1070
- # --- PASO 1: GENERAR TODO EL CONTENIDO DEL INFORME EN LA MEMORIA ---
1071
- best_match_data = results[0]
1072
- best_match = best_match_data['entry']
1073
-
1074
- # Generar análisis detallado con IA (la parte más lenta) y guardarlo en caché
1075
- if 'best_match_analysis' not in st.session_state.analysis_cache:
1076
- with st.spinner("✍️ Generando análisis personalizado con IA..."):
1077
- try:
1078
- analysis_text = generate_detailed_analysis(st.session_state.user_query, best_match)
1079
- st.session_state.analysis_cache['best_match_analysis'] = analysis_text
1080
- except Exception as e:
1081
- logger.error(f"Falló la generación del análisis detallado principal: {e}")
1082
- st.session_state.analysis_cache['best_match_analysis'] = "❌ Lo sentimos, no se pudo generar el análisis detallado en este momento debido a un problema con la IA."
1083
-
1084
- # Recuperar o usar el texto ya generado
1085
- ai_analysis_text = st.session_state.analysis_cache['best_match_analysis']
1086
-
1087
- # Generar los otros componentes de texto para el informe
1088
- base_report_text = generate_report_text(st.session_state.user_query, results)
1089
- neuro_report_text = generate_neuro_report_text(st.session_state.entities, FOOD_TO_COMPOUND_MAP, INTEGRATED_NEURO_FOOD_MAP)
1090
- molecular_report_text = generate_molecular_report_text(best_match, st.session_state.entities, foodb_index, FOOD_NAME_TO_FOODB_KEY, COMPOUND_SYNONYM_MAP, KNOWN_TRIGGERS_MAP)
1091
-
1092
- # Unir todo en un solo string para el informe de Word
1093
- complete_report_string = f"{base_report_text}\n\n{ai_analysis_text}\n{neuro_report_text}\n{molecular_report_text}"
1094
-
1095
- # Generar el archivo de Word en memoria con todo el contenido
1096
- word_file_buffer = generate_word_report(complete_report_string)
1097
-
1098
- # --- PASO 2: CONSTRUIR LA INTERFAZ DE USUARIO USANDO EL CONTENIDO PRE-GENERADO ---
1099
  col1, col2 = st.columns([3,1])
 
 
1100
  with col1:
1101
  st.success(f"Hemos encontrado {len(results)} posible(s) causa(s) relacionada(s) con tu caso.")
1102
- with col2:
 
 
1103
  # Inicializar el estado si no existe
1104
  if 'report_generated' not in st.session_state:
1105
  st.session_state.report_generated = False
@@ -1119,6 +1095,8 @@ if st.session_state.search_results is not None:
1119
  # Guardar el buffer del archivo de Word en el estado de la sesión
1120
  st.session_state.word_file_buffer = generate_word_report(complete_report_string)
1121
  st.session_state.report_generated = True
 
 
1122
 
1123
  # Si el informe ya se generó, mostrar el botón de descarga
1124
  if st.session_state.report_generated and st.session_state.word_file_buffer:
@@ -1132,6 +1110,7 @@ if st.session_state.search_results is not None:
1132
  # Opcional: Mostrar un mensaje de éxito
1133
  st.success("¡Su informe está listo!")
1134
 
 
1135
  st.subheader("Análisis de Relevancia de las Coincidencias")
1136
  st.altair_chart(create_relevance_chart(results), use_container_width=True)
1137
 
 
1067
  if not results:
1068
  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.")
1069
  else:
1070
+ # Definimos las columnas
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1071
  col1, col2 = st.columns([3,1])
1072
+
1073
+ # Contenido de la primera columna
1074
  with col1:
1075
  st.success(f"Hemos encontrado {len(results)} posible(s) causa(s) relacionada(s) con tu caso.")
1076
+
1077
+ # --- BLOQUE CORREGIDO: TODO LO SIGUIENTE ESTÁ AHORA DENTRO DE 'with col2:' ---
1078
+ with col2:
1079
  # Inicializar el estado si no existe
1080
  if 'report_generated' not in st.session_state:
1081
  st.session_state.report_generated = False
 
1095
  # Guardar el buffer del archivo de Word en el estado de la sesión
1096
  st.session_state.word_file_buffer = generate_word_report(complete_report_string)
1097
  st.session_state.report_generated = True
1098
+ # Forzar una re-ejecución para mostrar el botón de descarga inmediatamente
1099
+ st.rerun()
1100
 
1101
  # Si el informe ya se generó, mostrar el botón de descarga
1102
  if st.session_state.report_generated and st.session_state.word_file_buffer:
 
1110
  # Opcional: Mostrar un mensaje de éxito
1111
  st.success("¡Su informe está listo!")
1112
 
1113
+ # El resto del código de visualización, correctamente alineado
1114
  st.subheader("Análisis de Relevancia de las Coincidencias")
1115
  st.altair_chart(create_relevance_chart(results), use_container_width=True)
1116