import gradio as gr import os import logging from modules.ui.landing_ui import create_landing_interface from modules.ui.login_ui import create_login_interface from modules.database.database_init import initialize_database_connections # 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.") def main_interface(): """ Ruta principal para seleccionar entre Landing Page y Login. """ with gr.Blocks() as app_interface: # Contenedores para las interfaces landing_container = gr.Group(visible=True) login_container = gr.Group(visible=False) # Crear interfaces landing_page = create_landing_interface() login_page = create_login_interface() def handle_navigation(page="landing"): """ Maneja la navegación entre Landing Page y Login. """ if page == "login": return { landing_container: gr.update(visible=False), login_container: gr.update(visible=True), } return { landing_container: gr.update(visible=True), login_container: gr.update(visible=False), } # Landing Page with landing_container: landing_page.render(navigate_to_login=lambda: handle_navigation("login")) # Login Page with login_container: login_page.render(navigate_back=lambda: handle_navigation("landing")) 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)