AIdeaText commited on
Commit
78a6940
·
verified ·
1 Parent(s): 9ed1722

Update modules/morphosyntax/morphosyntax_interface.py

Browse files
modules/morphosyntax/morphosyntax_interface.py CHANGED
@@ -32,7 +32,8 @@ logger = logging.getLogger(__name__)
32
 
33
  ###########################################################################
34
  def initialize_arc_analysis_state():
35
- """Inicializa el estado del análisis de arcos si no existe"""
 
36
  if 'arc_analysis_state' not in st.session_state:
37
  st.session_state.arc_analysis_state = {
38
  'original_text': '',
@@ -43,6 +44,11 @@ def initialize_arc_analysis_state():
43
  }
44
  logger.info("Estado de análisis de arcos inicializado")
45
 
 
 
 
 
 
46
  ###########################################################################
47
 
48
  def reset_morpho_state():
@@ -70,14 +76,19 @@ def display_iteration_analysis(container, analysis, lang_code, morpho_t):
70
  display_morphosyntax_results(analysis, lang_code, morpho_t)
71
 
72
  ############################################################################
 
73
  def cache_analysis_results(key, result):
74
  """Almacena resultados de análisis en caché"""
75
- if 'analysis_cache' not in st.session_state:
76
- st.session_state.analysis_cache = {}
77
  st.session_state.analysis_cache[key] = result
 
78
 
79
  def get_cached_analysis(key):
80
  """Recupera resultados de análisis del caché"""
 
 
 
81
  return st.session_state.analysis_cache.get(key)
82
 
83
 
@@ -208,7 +219,7 @@ def display_morphosyntax_interface(lang_code, nlp_models, morpho_t):
208
 
209
  # Procesar iteración cuando se envía el formulario
210
  if hasattr(st.session_state, 'iteration_submitted') and st.session_state.iteration_submitted:
211
- iteration_text = st.session_state.temp_iteration_text
212
 
213
  if iteration_text.strip():
214
  try:
@@ -217,9 +228,11 @@ def display_morphosyntax_interface(lang_code, nlp_models, morpho_t):
217
  cached_result = get_cached_analysis(cache_key)
218
 
219
  if cached_result:
 
220
  doc_iter = cached_result['doc']
221
  analysis_iter = cached_result['analysis']
222
  else:
 
223
  doc_iter = nlp_models[lang_code](iteration_text)
224
  analysis_iter = perform_advanced_morphosyntactic_analysis(
225
  iteration_text,
@@ -267,6 +280,8 @@ def display_morphosyntax_interface(lang_code, nlp_models, morpho_t):
267
  except Exception as e:
268
  st.error("Error al procesar iteración")
269
  logger.error(f"Error al procesar iteración: {str(e)}")
 
 
270
 
271
  # Otros subtabs...
272
  with subtabs[1]:
 
32
 
33
  ###########################################################################
34
  def initialize_arc_analysis_state():
35
+ """Inicializa el estado del análisis de arcos y el caché si no existen"""
36
+ # Inicializar estado de análisis
37
  if 'arc_analysis_state' not in st.session_state:
38
  st.session_state.arc_analysis_state = {
39
  'original_text': '',
 
44
  }
45
  logger.info("Estado de análisis de arcos inicializado")
46
 
47
+ # Inicializar caché de análisis
48
+ if 'analysis_cache' not in st.session_state:
49
+ st.session_state.analysis_cache = {}
50
+ logger.info("Caché de análisis inicializado")
51
+
52
  ###########################################################################
53
 
54
  def reset_morpho_state():
 
76
  display_morphosyntax_results(analysis, lang_code, morpho_t)
77
 
78
  ############################################################################
79
+
80
  def cache_analysis_results(key, result):
81
  """Almacena resultados de análisis en caché"""
82
+ if not hasattr(st.session_state, 'analysis_cache'):
83
+ initialize_arc_analysis_state()
84
  st.session_state.analysis_cache[key] = result
85
+ logger.info(f"Resultado almacenado en caché con clave: {key}")
86
 
87
  def get_cached_analysis(key):
88
  """Recupera resultados de análisis del caché"""
89
+ if not hasattr(st.session_state, 'analysis_cache'):
90
+ initialize_arc_analysis_state()
91
+ return None
92
  return st.session_state.analysis_cache.get(key)
93
 
94
 
 
219
 
220
  # Procesar iteración cuando se envía el formulario
221
  if hasattr(st.session_state, 'iteration_submitted') and st.session_state.iteration_submitted:
222
+ iteration_text = getattr(st.session_state, 'temp_iteration_text', '')
223
 
224
  if iteration_text.strip():
225
  try:
 
228
  cached_result = get_cached_analysis(cache_key)
229
 
230
  if cached_result:
231
+ logger.info("Usando resultado cacheado")
232
  doc_iter = cached_result['doc']
233
  analysis_iter = cached_result['analysis']
234
  else:
235
+ logger.info("Generando nuevo análisis")
236
  doc_iter = nlp_models[lang_code](iteration_text)
237
  analysis_iter = perform_advanced_morphosyntactic_analysis(
238
  iteration_text,
 
280
  except Exception as e:
281
  st.error("Error al procesar iteración")
282
  logger.error(f"Error al procesar iteración: {str(e)}")
283
+ # Limpiar flag de envío en caso de error
284
+ st.session_state.iteration_submitted = False
285
 
286
  # Otros subtabs...
287
  with subtabs[1]: