AIdeaText commited on
Commit
4eb88cc
verified
1 Parent(s): d87b82c

Update modules/studentact/current_situation_interface.py

Browse files
modules/studentact/current_situation_interface.py CHANGED
@@ -94,22 +94,16 @@ ANALYSIS_DIMENSION_MAPPING = {
94
 
95
  def display_current_situation_interface(lang_code, nlp_models, t):
96
  """
97
- Interfaz simplificada con gr谩fico de radar para visualizar m茅tricas.
98
  """
99
- # Inicializar estados si no existen
100
- if 'text_input' not in st.session_state:
101
- st.session_state.text_input = ""
102
- if 'text_area' not in st.session_state:
103
- st.session_state.text_area = ""
104
- if 'show_results' not in st.session_state:
105
- st.session_state.show_results = False
106
- if 'current_doc' not in st.session_state:
107
- st.session_state.current_doc = None
108
- if 'current_metrics' not in st.session_state:
109
- st.session_state.current_metrics = None
110
-
111
  try:
112
- # st.title("An谩lisis de Escritura")
 
 
 
 
 
 
113
 
114
  # Crear cuatro columnas
115
  text_base_col, results_base_col, text_iter_col, results_iter_col = st.columns(4)
@@ -125,21 +119,24 @@ def display_current_situation_interface(lang_code, nlp_models, t):
125
  help="Este texto servir谩 como l铆nea base"
126
  )
127
 
128
- baseline_button = st.button(
129
  "Establecer L铆nea Base",
130
  type="primary",
131
  disabled=not text_input.strip(),
132
  use_container_width=True
133
- )
134
-
135
- # Columna 2: Resultados Base
136
- with results_base_col:
137
- if baseline_button and text_input:
138
  with st.spinner("Analizando l铆nea base..."):
139
  doc = nlp_models[lang_code](text_input)
140
  metrics = analyze_text_dimensions(doc)
141
- display_results(metrics, 'student_essay')
142
  st.session_state.baseline_metrics = metrics
 
 
 
 
 
 
 
 
143
 
144
  # Columna 3: Texto Iteraci贸n
145
  with text_iter_col:
@@ -148,29 +145,34 @@ def display_current_situation_interface(lang_code, nlp_models, t):
148
  "Nueva versi贸n del texto:",
149
  height=400,
150
  key="text_area_iter",
151
- help="Escribe la versi贸n mejorada de tu texto"
 
 
152
  )
153
 
154
- iterate_button = st.button(
155
  "Analizar Iteraci贸n",
156
  type="primary",
157
  disabled=not iteration_text.strip() or not st.session_state.baseline_metrics,
158
  use_container_width=True
159
- )
160
-
161
- # Columna 4: Resultados Iteraci贸n
162
- with results_iter_col:
163
- if iterate_button and iteration_text:
164
  with st.spinner("Analizando iteraci贸n..."):
165
  doc = nlp_models[lang_code](iteration_text)
166
  metrics = analyze_text_dimensions(doc)
167
- display_results(metrics, 'student_essay')
 
 
 
 
 
 
 
168
 
169
  # Gr谩fico radar en expander debajo de las columnas
170
- with st.expander("Ver Comparaci贸n Visual", expanded=False):
171
- if 'baseline_metrics' in st.session_state and 'metrics' in locals():
172
  display_radar_chart(
173
- metrics_config=prepare_metrics_config(metrics),
174
  thresholds=TEXT_TYPES['student_essay']['thresholds'],
175
  baseline_metrics=st.session_state.baseline_metrics
176
  )
@@ -179,6 +181,7 @@ def display_current_situation_interface(lang_code, nlp_models, t):
179
  logger.error(f"Error en interfaz principal: {str(e)}")
180
  st.error("Ocurri贸 un error al cargar la interfaz")
181
 
 
182
  ###################################
183
 
184
  def display_metrics_column(metrics, title):
 
94
 
95
  def display_current_situation_interface(lang_code, nlp_models, t):
96
  """
97
+ Interfaz con columnas de texto y resultados paralelas.
98
  """
 
 
 
 
 
 
 
 
 
 
 
 
99
  try:
100
+ # Inicializar estados si no existen
101
+ if 'text_input' not in st.session_state:
102
+ st.session_state.text_input = ""
103
+ st.session_state.baseline_metrics = None
104
+ st.session_state.baseline_text = None
105
+ st.session_state.iteration_text = ""
106
+ st.session_state.iteration_metrics = None
107
 
108
  # Crear cuatro columnas
109
  text_base_col, results_base_col, text_iter_col, results_iter_col = st.columns(4)
 
119
  help="Este texto servir谩 como l铆nea base"
120
  )
121
 
122
+ if st.button(
123
  "Establecer L铆nea Base",
124
  type="primary",
125
  disabled=not text_input.strip(),
126
  use_container_width=True
127
+ ):
 
 
 
 
128
  with st.spinner("Analizando l铆nea base..."):
129
  doc = nlp_models[lang_code](text_input)
130
  metrics = analyze_text_dimensions(doc)
 
131
  st.session_state.baseline_metrics = metrics
132
+ st.session_state.baseline_text = text_input
133
+ st.session_state.text_input = text_input
134
+
135
+ # Columna 2: Resultados Base
136
+ with results_base_col:
137
+ st.markdown("### M茅tricas Base")
138
+ if st.session_state.baseline_metrics:
139
+ display_metrics_column(st.session_state.baseline_metrics, "Base")
140
 
141
  # Columna 3: Texto Iteraci贸n
142
  with text_iter_col:
 
145
  "Nueva versi贸n del texto:",
146
  height=400,
147
  key="text_area_iter",
148
+ value=st.session_state.iteration_text,
149
+ help="Escribe la versi贸n mejorada de tu texto",
150
+ disabled=not st.session_state.baseline_metrics
151
  )
152
 
153
+ if st.button(
154
  "Analizar Iteraci贸n",
155
  type="primary",
156
  disabled=not iteration_text.strip() or not st.session_state.baseline_metrics,
157
  use_container_width=True
158
+ ):
 
 
 
 
159
  with st.spinner("Analizando iteraci贸n..."):
160
  doc = nlp_models[lang_code](iteration_text)
161
  metrics = analyze_text_dimensions(doc)
162
+ st.session_state.iteration_metrics = metrics
163
+ st.session_state.iteration_text = iteration_text
164
+
165
+ # Columna 4: Resultados Iteraci贸n
166
+ with results_iter_col:
167
+ st.markdown("### M茅tricas Iteraci贸n")
168
+ if st.session_state.iteration_metrics:
169
+ display_metrics_column(st.session_state.iteration_metrics, "Iteraci贸n")
170
 
171
  # Gr谩fico radar en expander debajo de las columnas
172
+ if st.session_state.baseline_metrics and st.session_state.iteration_metrics:
173
+ with st.expander("Ver Comparaci贸n Visual", expanded=False):
174
  display_radar_chart(
175
+ metrics_config=prepare_metrics_config(st.session_state.iteration_metrics),
176
  thresholds=TEXT_TYPES['student_essay']['thresholds'],
177
  baseline_metrics=st.session_state.baseline_metrics
178
  )
 
181
  logger.error(f"Error en interfaz principal: {str(e)}")
182
  st.error("Ocurri贸 un error al cargar la interfaz")
183
 
184
+
185
  ###################################
186
 
187
  def display_metrics_column(metrics, title):