File size: 3,350 Bytes
2d9dd02 4adc748 71d6e37 4adc748 79c4b18 4adc748 71d6e37 4adc748 71d6e37 4adc748 71d6e37 4adc748 71d6e37 4adc748 71d6e37 4adc748 71d6e37 4adc748 71d6e37 08aea0d 71d6e37 08aea0d 71d6e37 08aea0d 71d6e37 08aea0d 4adc748 71d6e37 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
##app.py
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.auth.auth import authenticate_user
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 las variables de entorno necesarias
COSMOS_ENDPOINT = os.getenv("COSMOS_ENDPOINT")
COSMOS_KEY = os.getenv("COSMOS_KEY")
if not COSMOS_ENDPOINT or not COSMOS_KEY:
raise ValueError("Faltan las variables de entorno COSMOS_ENDPOINT y COSMOS_KEY.")
# Inicializar las conexiones a la base de datos
if not initialize_database_connections():
raise ValueError("No se pudo inicializar la conexi贸n a la base de datos.")
# Funci贸n principal de inicializaci贸n
def app_main():
"""
Inicializa la aplicaci贸n con Gradio.
"""
logger.info("Iniciando AIdeaText")
# Estado de la aplicaci贸n
state = gr.State({
"logged_in": False,
"username": None,
"role": None
})
with gr.Blocks(css="#container { max-width: 800px; margin: auto; }") as app_interface:
gr.HTML("<div id='container'>")
# Contenedores para cada vista
landing_container = gr.Group(visible=True)
login_container = gr.Group(visible=False)
user_container = gr.Group(visible=False)
# Funci贸n de navegaci贸n
def switch_view(to_view, state_update=None):
updates = {
"landing": [True, False, False],
"login": [False, True, False],
"user": [False, False, True]
}
visibilities = updates[to_view]
if state_update:
state.update(state_update)
return [gr.update(visible=v) for v in visibilities]
# Funci贸n de login
def handle_login(username, password, state):
success, role = authenticate_user(username, password)
if success:
state.update({
"logged_in": True,
"username": username,
"role": role
})
return switch_view("user", state) + [f"Bienvenido, {username}"]
return switch_view("login") + ["Credenciales incorrectas"]
# Renderizar interfaces
with landing_container:
landing_interface = create_landing_interface()
landing_interface.render(lambda: switch_view("login"))
with login_container:
login_interface = create_login_interface()
login_interface.render(
lambda: switch_view("landing"),
handle_login
)
with user_container:
user_interface = create_user_interface()
user_interface.render(lambda: switch_view("landing"))
gr.HTML("</div>")
app_interface.launch(server_name="0.0.0.0", server_port=7860)
if __name__ == "__main__":
app_main()
|