AIdeaText commited on
Commit
38f352f
·
verified ·
1 Parent(s): f3f3cdc

Upload 2 files

Browse files
modules/semantic/semantic_interface.py CHANGED
@@ -31,8 +31,7 @@ from ..database.chat_mongo_db import store_chat_history, get_chat_history
31
  ###############################
32
 
33
  # En semantic_interface.py
34
-
35
- def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
36
  try:
37
  # 1. Inicializar el estado de la sesión
38
  if 'semantic_state' not in st.session_state:
@@ -44,11 +43,11 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
44
  }
45
 
46
  # 2. Área de carga de archivo con mensaje informativo
47
- st.info(semantic_t.get('semantic_initial_instruction',
48
  'Para comenzar un nuevo análisis semántico, cargue un archivo de texto (.txt)'))
49
 
50
  uploaded_file = st.file_uploader(
51
- semantic_t.get('semantic_file_uploader', 'Ingresar un archivo de texto para análisis semántico'),
52
  type=['txt'],
53
  key=f"semantic_file_uploader_{st.session_state.semantic_state['analysis_count']}"
54
  )
@@ -56,7 +55,7 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
56
  # 2.1 Verificar si hay un archivo cargado y un análisis pendiente
57
  if uploaded_file is not None and st.session_state.semantic_state.get('pending_analysis', False):
58
  try:
59
- with st.spinner(semantic_t.get('semantic_processing', 'Semantic processing...')):
60
  # Realizar análisis
61
  text_content = uploaded_file.getvalue().decode('utf-8')
62
 
@@ -64,7 +63,6 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
64
  text_content,
65
  lang_code,
66
  nlp_models,
67
- t,
68
  semantic_t
69
  )
70
 
@@ -83,11 +81,11 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
83
 
84
  if storage_success:
85
  st.success(
86
- semantic_t.get('semantic_analysis_complete',
87
  'Análisis completado y guardado. Para realizar un nuevo análisis, cargue otro archivo.')
88
  )
89
  else:
90
- st.error(semantic_t.get('semanctic_error_saving_message', 'There was a problem saving the semantic analysis. Please try again.'))
91
  else:
92
  st.error(analysis_result['message'])
93
 
@@ -96,7 +94,7 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
96
 
97
  except Exception as e:
98
  logger.error(f"Error en análisis semántico: {str(e)}")
99
- st.error(semantic_t.get('semantic_error_processing_message', f'Error processing text: {str(e)}'))
100
  # Restablecer el flag de análisis pendiente en caso de error
101
  st.session_state.semantic_state['pending_analysis'] = False
102
 
@@ -136,7 +134,7 @@ def display_semantic_interface(lang_code, nlp_models, t, semantic_t):
136
  semantic_t
137
  )
138
  else:
139
- st.info(semantic_t.get('semantic_upload_prompt', 'Cargue un archivo para comenzar el análisis semántico'))
140
 
141
  except Exception as e:
142
  logger.error(f"Error general en interfaz semántica: {str(e)}")
@@ -149,7 +147,7 @@ def display_semantic_results(semantic_result, lang_code, semantic_t):
149
  Muestra los resultados del análisis semántico de conceptos clave.
150
  """
151
  if semantic_result is None or not semantic_result['success']:
152
- st.warning(semantic_t.get('semantic_no_results', 'No semantic results available'))
153
  return
154
 
155
  analysis = semantic_result['analysis']
@@ -203,7 +201,7 @@ def display_semantic_results(semantic_result, lang_code, semantic_t):
203
  unsafe_allow_html=True
204
  )
205
  else:
206
- st.info(semantic_t.get('semantic_no_key_concepts', 'No key semantic concepts found'))
207
 
208
  # Gráfico de conceptos
209
  # st.subheader(semantic_t.get('concept_graph', 'Concepts Graph'))
 
31
  ###############################
32
 
33
  # En semantic_interface.py
34
+ def display_semantic_interface(lang_code, nlp_models, semantic_t):
 
35
  try:
36
  # 1. Inicializar el estado de la sesión
37
  if 'semantic_state' not in st.session_state:
 
43
  }
44
 
45
  # 2. Área de carga de archivo con mensaje informativo
46
+ st.info(semantic_t.get('initial_instruction',
47
  'Para comenzar un nuevo análisis semántico, cargue un archivo de texto (.txt)'))
48
 
49
  uploaded_file = st.file_uploader(
50
+ semantic_t.get('semantic_file_uploader', 'Upload a text file for semantic analysis'),
51
  type=['txt'],
52
  key=f"semantic_file_uploader_{st.session_state.semantic_state['analysis_count']}"
53
  )
 
55
  # 2.1 Verificar si hay un archivo cargado y un análisis pendiente
56
  if uploaded_file is not None and st.session_state.semantic_state.get('pending_analysis', False):
57
  try:
58
+ with st.spinner(semantic_t.get('processing', 'Processing...')):
59
  # Realizar análisis
60
  text_content = uploaded_file.getvalue().decode('utf-8')
61
 
 
63
  text_content,
64
  lang_code,
65
  nlp_models,
 
66
  semantic_t
67
  )
68
 
 
81
 
82
  if storage_success:
83
  st.success(
84
+ semantic_t.get('analysis_complete',
85
  'Análisis completado y guardado. Para realizar un nuevo análisis, cargue otro archivo.')
86
  )
87
  else:
88
+ st.error(semantic_t.get('error_message', 'Error saving analysis'))
89
  else:
90
  st.error(analysis_result['message'])
91
 
 
94
 
95
  except Exception as e:
96
  logger.error(f"Error en análisis semántico: {str(e)}")
97
+ st.error(semantic_t.get('error_processing', f'Error processing text: {str(e)}'))
98
  # Restablecer el flag de análisis pendiente en caso de error
99
  st.session_state.semantic_state['pending_analysis'] = False
100
 
 
134
  semantic_t
135
  )
136
  else:
137
+ st.info(semantic_t.get('upload_prompt', 'Cargue un archivo para comenzar el análisis'))
138
 
139
  except Exception as e:
140
  logger.error(f"Error general en interfaz semántica: {str(e)}")
 
147
  Muestra los resultados del análisis semántico de conceptos clave.
148
  """
149
  if semantic_result is None or not semantic_result['success']:
150
+ st.warning(semantic_t.get('no_results', 'No results available'))
151
  return
152
 
153
  analysis = semantic_result['analysis']
 
201
  unsafe_allow_html=True
202
  )
203
  else:
204
+ st.info(semantic_t.get('no_concepts', 'No key concepts found'))
205
 
206
  # Gráfico de conceptos
207
  # st.subheader(semantic_t.get('concept_graph', 'Concepts Graph'))
modules/semantic/semantic_process.py CHANGED
@@ -5,23 +5,17 @@ import io
5
  import base64
6
  import logging
7
 
8
- ##################################
9
  from ..text_analysis.semantic_analysis import (
10
  perform_semantic_analysis,
11
  identify_key_concepts,
12
  create_concept_graph,
13
  visualize_concept_graph
14
  )
15
-
16
- ####################################
17
  from ..database.semantic_mongo_db import store_student_semantic_result
18
 
19
- #############################################
20
  logger = logging.getLogger(__name__)
21
 
22
-
23
- #######################################################################
24
- def process_semantic_input(text, lang_code, nlp_models, t, semantic_t):
25
  """
26
  Procesa el texto ingresado para realizar el análisis semántico.
27
  """
@@ -30,13 +24,7 @@ def process_semantic_input(text, lang_code, nlp_models, t, semantic_t):
30
 
31
  # Realizar el análisis semántico
32
  nlp = nlp_models[lang_code]
33
-
34
- analysis_result = perform_semantic_analysis(
35
- text,
36
- nlp_models[lang_code],
37
- lang_code,
38
- semantic_t
39
- )
40
 
41
  if not analysis_result['success']:
42
  return {
@@ -62,7 +50,7 @@ def process_semantic_input(text, lang_code, nlp_models, t, semantic_t):
62
  # Devolver el resultado incluso si falla el guardado
63
  return {
64
  'success': True,
65
- 'message': semantic_t.get('success_message', 'Analysis completed successfully'),
66
  'analysis': {
67
  'key_concepts': analysis_result['key_concepts'],
68
  'concept_graph': analysis_result['concept_graph']
@@ -77,7 +65,6 @@ def process_semantic_input(text, lang_code, nlp_models, t, semantic_t):
77
  'analysis': None
78
  }
79
 
80
- ##########################################################################
81
  def format_semantic_results(analysis_result, t):
82
  """
83
  Formatea los resultados del análisis para su visualización.
 
5
  import base64
6
  import logging
7
 
 
8
  from ..text_analysis.semantic_analysis import (
9
  perform_semantic_analysis,
10
  identify_key_concepts,
11
  create_concept_graph,
12
  visualize_concept_graph
13
  )
 
 
14
  from ..database.semantic_mongo_db import store_student_semantic_result
15
 
 
16
  logger = logging.getLogger(__name__)
17
 
18
+ def process_semantic_input(text, lang_code, nlp_models, t):
 
 
19
  """
20
  Procesa el texto ingresado para realizar el análisis semántico.
21
  """
 
24
 
25
  # Realizar el análisis semántico
26
  nlp = nlp_models[lang_code]
27
+ analysis_result = perform_semantic_analysis(text, nlp, lang_code)
 
 
 
 
 
 
28
 
29
  if not analysis_result['success']:
30
  return {
 
50
  # Devolver el resultado incluso si falla el guardado
51
  return {
52
  'success': True,
53
+ 'message': t.get('success_message', 'Analysis completed successfully'),
54
  'analysis': {
55
  'key_concepts': analysis_result['key_concepts'],
56
  'concept_graph': analysis_result['concept_graph']
 
65
  'analysis': None
66
  }
67
 
 
68
  def format_semantic_results(analysis_result, t):
69
  """
70
  Formatea los resultados del análisis para su visualización.