Spaces:
Sleeping
Sleeping
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('
|
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', '
|
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('
|
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('
|
87 |
'Análisis completado y guardado. Para realizar un nuevo análisis, cargue otro archivo.')
|
88 |
)
|
89 |
else:
|
90 |
-
st.error(semantic_t.get('
|
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('
|
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('
|
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('
|
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('
|
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':
|
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.
|