AIdeaText commited on
Commit
f9cdb15
verified
1 Parent(s): 44a9281

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +167 -172
app.py CHANGED
@@ -1,173 +1,168 @@
1
- # AIdeaText v3
2
- # app.py
3
- import logging
4
- import streamlit as st
5
- import sys
6
- import os
7
- from dotenv import load_dotenv
8
- from datetime import datetime
9
- from PIL import Image
10
-
11
- # Configuraci贸n b谩sica
12
- load_dotenv()
13
- logging.basicConfig(level=logging.INFO)
14
- logger = logging.getLogger(__name__)
15
-
16
- # Configuraci贸n b谩sica de la p谩gina
17
- st.set_page_config(
18
- page_title="AIdeaText",
19
- layout="wide",
20
- initial_sidebar_state="collapsed" # Para dar m谩s espacio al logo
21
- )
22
-
23
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
24
-
25
- # Importaciones locales
26
- from translations import get_translations, get_landing_translations
27
- from session_state import initialize_session_state
28
- from modules.ui.ui import main as ui_main
29
- from modules.utils.spacy_utils import load_spacy_models
30
- from modules.utils.widget_utils import generate_unique_key
31
-
32
- # Importaciones de interfaces
33
- from modules.morphosyntax.morphosyntax_interface import (
34
- display_morphosyntax_interface,
35
- display_arc_diagram
36
- #display_morphosyntax_results
37
- )
38
-
39
- from modules.semantic.semantic_interface import (
40
- display_semantic_interface,
41
- display_semantic_results
42
- )
43
-
44
- from modules.discourse.discourse_interface import (
45
- display_discourse_interface,
46
- display_discourse_results
47
- )
48
-
49
- # Importaciones de base de datos
50
-
51
- from modules.database.database_init import initialize_database_connections
52
-
53
- from modules.database.sql_db import (
54
- get_user,
55
- get_admin_user,
56
- get_student_user,
57
- get_teacher_user,
58
- create_user,
59
- create_student_user,
60
- create_teacher_user,
61
- create_admin_user,
62
- update_student_user, # Agregada
63
- delete_student_user, # Agregada
64
- record_login,
65
- record_logout,
66
- get_recent_sessions,
67
- get_user_total_time,
68
- store_application_request,
69
- store_student_feedback
70
- )
71
-
72
- from modules.database.mongo_db import (
73
- get_collection,
74
- insert_document,
75
- find_documents,
76
- update_document,
77
- delete_document
78
- )
79
-
80
- from modules.database.morphosintax_mongo_db import (
81
- store_student_morphosyntax_result,
82
- get_student_morphosyntax_analysis
83
- )
84
-
85
- from modules.database.semantic_mongo_db import (
86
- store_student_semantic_result,
87
- get_student_semantic_analysis
88
- )
89
-
90
- from modules.database.chat_mongo_db import (
91
- store_chat_history,
92
- get_chat_history
93
- )
94
-
95
- # Importaciones de base de datos
96
- from modules.studentact.student_activities_v2 import display_student_activities
97
- from modules.studentact.current_situation_interface import display_current_situation_interface
98
-
99
- from modules.auth.auth import (
100
- authenticate_student,
101
- register_student,
102
- update_student_info,
103
- delete_student
104
- )
105
- from modules.admin.admin_ui import admin_page
106
-
107
- logging.basicConfig(level=logging.INFO)
108
- logger = logging.getLogger(__name__)
109
-
110
- @st.cache_resource(show_spinner=False)
111
- def initialize_nlp_models():
112
- logger.info("Cargando modelos de spaCy")
113
- models = load_spacy_models()
114
- logger.info("Modelos de spaCy cargados exitosamente")
115
- return models
116
-
117
- def app_main():
118
- try:
119
- logger.info("Entrando en app_main()")
120
-
121
- # Inicializar el estado de la sesi贸n
122
- if 'initialized' not in st.session_state:
123
- initialize_session_state()
124
- st.session_state.initialized = True
125
-
126
- # Inicializar conexiones a bases de datos si no se ha hecho
127
- if 'db_initialized' not in st.session_state:
128
- st.session_state.db_initialized = initialize_database_connections()
129
-
130
- # Cargar modelos NLP si no se ha hecho
131
- if 'nlp_models' not in st.session_state:
132
- logger.info("Inicializando modelos NLP en la sesi贸n")
133
- st.session_state.nlp_models = initialize_nlp_models()
134
- logger.info("Modelos NLP inicializados y almacenados en la sesi贸n")
135
-
136
- # Inicializar estados de an谩lisis si no existen
137
- if 'morphosyntax_state' not in st.session_state:
138
- st.session_state.morphosyntax_state = {
139
- 'last_analysis': None,
140
- 'analysis_count': 0
141
- }
142
-
143
- if 'semantic_state' not in st.session_state:
144
- st.session_state.semantic_state = {
145
- 'last_analysis': None,
146
- 'analysis_count': 0
147
- }
148
-
149
- # Configurar la p谩gina inicial si no est谩 configurada
150
- if 'page' not in st.session_state:
151
- st.session_state.page = 'login'
152
-
153
- # Prevenir reinicios innecesarios preservando el estado
154
- if 'selected_tab' not in st.session_state:
155
- st.session_state.selected_tab = 0
156
-
157
- logger.info(f"P谩gina actual: {st.session_state.page}")
158
- logger.info(f"Rol del usuario: {st.session_state.role}")
159
-
160
- # Dirigir el flujo a la interfaz de usuario principal
161
- logger.info(f"Llamando a ui_main() desde app_main()")
162
- ui_main()
163
-
164
- except Exception as e:
165
- logger.error(f"Error en app_main: {str(e)}", exc_info=True)
166
- st.error("Se ha producido un error en la aplicaci贸n. Por favor, int茅ntelo de nuevo m谩s tarde.")
167
- if st.button("Reiniciar aplicaci贸n",
168
- key=generate_unique_key("app", "reset_button")):
169
- st.session_state.clear()
170
- st.rerun()
171
-
172
- if __name__ == "__main__":
173
  app_main()
 
1
+ # AIdeaText v3
2
+ # app.py
3
+ import logging
4
+ import streamlit as st
5
+ import sys
6
+ import os
7
+ from dotenv import load_dotenv
8
+ from datetime import datetime
9
+ from PIL import Image
10
+
11
+ # Configuraci贸n b谩sica
12
+ load_dotenv()
13
+ logging.basicConfig(level=logging.INFO)
14
+ logger = logging.getLogger(__name__)
15
+
16
+ # Configuraci贸n b谩sica de la p谩gina
17
+ st.set_page_config(
18
+ page_title="AIdeaText",
19
+ layout="wide",
20
+ initial_sidebar_state="collapsed" # Para dar m谩s espacio al logo
21
+ )
22
+
23
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
24
+
25
+ # Importaciones locales
26
+ from translations import get_translations, get_landing_translations
27
+ from session_state import initialize_session_state
28
+ from modules.ui.ui import main as ui_main
29
+ from modules.utils.spacy_utils import load_spacy_models
30
+ from modules.utils.widget_utils import generate_unique_key
31
+
32
+ # Importaciones de interfaces
33
+ from modules.semantic.semantic_interface import (
34
+ display_semantic_interface,
35
+ display_semantic_results
36
+ )
37
+
38
+ from modules.discourse.discourse_interface import (
39
+ display_discourse_interface,
40
+ display_discourse_results
41
+ )
42
+
43
+ # Importaciones de base de datos
44
+
45
+ from modules.database.database_init import initialize_database_connections
46
+
47
+ from modules.database.sql_db import (
48
+ get_user,
49
+ get_admin_user,
50
+ get_student_user,
51
+ get_teacher_user,
52
+ create_user,
53
+ create_student_user,
54
+ create_teacher_user,
55
+ create_admin_user,
56
+ update_student_user, # Agregada
57
+ delete_student_user, # Agregada
58
+ record_login,
59
+ record_logout,
60
+ get_recent_sessions,
61
+ get_user_total_time,
62
+ store_application_request,
63
+ store_student_feedback
64
+ )
65
+
66
+ from modules.database.mongo_db import (
67
+ get_collection,
68
+ insert_document,
69
+ find_documents,
70
+ update_document,
71
+ delete_document
72
+ )
73
+
74
+ ###########SEMANTIC
75
+ from modules.database.semantic_mongo_db import (
76
+ store_student_semantic_result,
77
+ get_student_semantic_analysis
78
+ )
79
+
80
+ from modules.database.discourse_mongo_db import (
81
+ store_student_discourse_result,
82
+ get_student_discourse_analysis
83
+ )
84
+
85
+ from modules.database.chat_mongo_db import (
86
+ store_chat_history,
87
+ get_chat_history
88
+ )
89
+
90
+ # Importaciones de base de datos
91
+ from modules.studentact.student_activities_v2 import display_student_activities
92
+ from modules.studentact.current_situation_interface import display_current_situation_interface
93
+
94
+ from modules.auth.auth import (
95
+ authenticate_student,
96
+ register_student,
97
+ update_student_info,
98
+ delete_student
99
+ )
100
+ from modules.admin.admin_ui import admin_page
101
+
102
+ logging.basicConfig(level=logging.INFO)
103
+ logger = logging.getLogger(__name__)
104
+
105
+ @st.cache_resource(show_spinner=False)
106
+ def initialize_nlp_models():
107
+ logger.info("Cargando modelos de spaCy")
108
+ models = load_spacy_models()
109
+ logger.info("Modelos de spaCy cargados exitosamente")
110
+ return models
111
+
112
+ def app_main():
113
+ try:
114
+ logger.info("Entrando en app_main()")
115
+
116
+ # Inicializar el estado de la sesi贸n
117
+ if 'initialized' not in st.session_state:
118
+ initialize_session_state()
119
+ st.session_state.initialized = True
120
+
121
+ # Inicializar conexiones a bases de datos si no se ha hecho
122
+ if 'db_initialized' not in st.session_state:
123
+ st.session_state.db_initialized = initialize_database_connections()
124
+
125
+ # Cargar modelos NLP si no se ha hecho
126
+ if 'nlp_models' not in st.session_state:
127
+ logger.info("Inicializando modelos NLP en la sesi贸n")
128
+ st.session_state.nlp_models = initialize_nlp_models()
129
+ logger.info("Modelos NLP inicializados y almacenados en la sesi贸n")
130
+
131
+ # Inicializar estados de an谩lisis si no existen
132
+ if 'morphosyntax_state' not in st.session_state:
133
+ st.session_state.morphosyntax_state = {
134
+ 'last_analysis': None,
135
+ 'analysis_count': 0
136
+ }
137
+
138
+ if 'semantic_state' not in st.session_state:
139
+ st.session_state.semantic_state = {
140
+ 'last_analysis': None,
141
+ 'analysis_count': 0
142
+ }
143
+
144
+ # Configurar la p谩gina inicial si no est谩 configurada
145
+ if 'page' not in st.session_state:
146
+ st.session_state.page = 'login'
147
+
148
+ # Prevenir reinicios innecesarios preservando el estado
149
+ if 'selected_tab' not in st.session_state:
150
+ st.session_state.selected_tab = 0
151
+
152
+ logger.info(f"P谩gina actual: {st.session_state.page}")
153
+ logger.info(f"Rol del usuario: {st.session_state.role}")
154
+
155
+ # Dirigir el flujo a la interfaz de usuario principal
156
+ logger.info(f"Llamando a ui_main() desde app_main()")
157
+ ui_main()
158
+
159
+ except Exception as e:
160
+ logger.error(f"Error en app_main: {str(e)}", exc_info=True)
161
+ st.error("Se ha producido un error en la aplicaci贸n. Por favor, int茅ntelo de nuevo m谩s tarde.")
162
+ if st.button("Reiniciar aplicaci贸n",
163
+ key=generate_unique_key("app", "reset_button")):
164
+ st.session_state.clear()
165
+ st.rerun()
166
+
167
+ if __name__ == "__main__":
 
 
 
 
 
168
  app_main()