import gradio as gr import os import logging from modules.auth.auth import ( create_user_page, create_auth_interface, authenticate_admin, authenticate_student, register_student, update_student_info, delete_student, logout, hash_password, verify_password ) from modules.database.database_init import initialize_database_connections import spaces import torch zero = torch.Tensor([0]).cuda() print(zero.device) # <-- 'cpu' 馃 @spaces.GPU def greet(n): print(zero.device) # <-- 'cuda:0' 馃 return f"Hello {zero + n} Tensor" # Configuraci贸n b谩sica logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # Verificar variables de entorno COSMOS_ENDPOINT = os.getenv("COSMOS_ENDPOINT") COSMOS_KEY = os.getenv("COSMOS_KEY") if not COSMOS_ENDPOINT or not COSMOS_KEY: raise ValueError("Faltan variables de entorno: COSMOS_ENDPOINT y COSMOS_KEY.") # Inicializar la conexi贸n a la base de datos if not initialize_database_connections(): raise ValueError("No se pudo inicializar la conexi贸n a la base de datos.") # Crear la interfaz de login # app = create_auth_interface() # Crear la interfaz de usuario y login def main_interface(): """ Crea la interfaz principal con redirecci贸n al login o user page. """ with gr.Blocks() as app_interface: # Contenedores para manejo de redirecci贸n login_page = create_auth_interface() user_page = create_user_page() # Control de visibilidad login_container = gr.Group(visible=True) user_container = gr.Group(visible=False) # Manejo de login exitoso def handle_login_redirect(username, role): if username and role: return { login_container: gr.update(visible=False), user_container: gr.update(visible=True) } return { login_container: gr.update(visible=True), user_container: gr.update(visible=False) } # Login Page with login_container: login_page.load(fn=handle_login_redirect, inputs=[], outputs=[]) # User Page with user_container: user_page return app_interface # Lanzar la aplicaci贸n if __name__ == "__main__": app = main_interface() app.launch(server_name="0.0.0.0", server_port=7860, auth=None)