Update app.py
Browse files
app.py
CHANGED
|
@@ -4,26 +4,16 @@ from fastapi.responses import FileResponse
|
|
| 4 |
from fastapi.staticfiles import StaticFiles
|
| 5 |
import os
|
| 6 |
|
| 7 |
-
# --- Configuración de la App ---
|
| 8 |
-
# Creamos una instancia de FastAPI para tener control total
|
| 9 |
app = FastAPI()
|
| 10 |
-
|
| 11 |
-
# Montamos el directorio 'static' para servir CSS y JS
|
| 12 |
-
# Esto permite que nuestro HTML pueda cargar los archivos main.js y style.css
|
| 13 |
app.mount("/static", StaticFiles(directory="static"), name="static")
|
| 14 |
-
|
| 15 |
-
# Definimos el directorio de las plantillas HTML
|
| 16 |
templates_dir = "templates"
|
| 17 |
|
| 18 |
-
# --- Ruta Principal ---
|
| 19 |
-
# Esta es la ruta raíz. Cuando un usuario visita el Space de Hugging Face,
|
| 20 |
-
# FastAPI interceptará la petición y servirá nuestro archivo index.html.
|
| 21 |
@app.get("/")
|
| 22 |
async def read_index(request: Request):
|
| 23 |
"""
|
| 24 |
Sirve el archivo principal de la aplicación, index.html.
|
| 25 |
-
Esta es la única puerta de entrada. Toda la lógica pesada se delega
|
| 26 |
-
al cliente (navegador del usuario) a través del JavaScript cargado.
|
| 27 |
"""
|
| 28 |
path = os.path.join(templates_dir, "index.html")
|
| 29 |
if os.path.exists(path):
|
|
@@ -31,24 +21,26 @@ async def read_index(request: Request):
|
|
| 31 |
return {"error": "index.html not found"}
|
| 32 |
|
| 33 |
# --- Montaje de la App en Gradio ---
|
| 34 |
-
#
|
| 35 |
-
#
|
| 36 |
-
# La interfaz de Gradio no mostrará nada, simplemente servirá como host.
|
| 37 |
-
custom_html = """
|
| 38 |
-
<div style="text-align: center; padding: 20px;">
|
| 39 |
-
<h1>Synapse AI Core</h1>
|
| 40 |
-
<p>Si estás viendo esto, significa que el backend está funcionando. La aplicación principal se carga directamente en la ruta raíz.</p>
|
| 41 |
-
<p>Accede a la aplicación a través del enlace directo proporcionado por Hugging Face Spaces (sin /?__theme=light al final).</p>
|
| 42 |
-
</div>
|
| 43 |
-
"""
|
| 44 |
with gr.Blocks(title="Synapse AI") as demo:
|
| 45 |
-
gr.HTML(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
-
# Montamos la app de FastAPI dentro de la app de Gradio
|
|
|
|
| 48 |
app = gr.mount_gradio_app(app, demo, path="/")
|
| 49 |
|
| 50 |
-
#
|
| 51 |
-
#
|
| 52 |
-
#
|
| 53 |
-
#
|
| 54 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
from fastapi.staticfiles import StaticFiles
|
| 5 |
import os
|
| 6 |
|
| 7 |
+
# --- Configuración de la App (sin cambios) ---
|
|
|
|
| 8 |
app = FastAPI()
|
|
|
|
|
|
|
|
|
|
| 9 |
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
|
|
|
|
|
| 10 |
templates_dir = "templates"
|
| 11 |
|
| 12 |
+
# --- Ruta Principal (sin cambios) ---
|
|
|
|
|
|
|
| 13 |
@app.get("/")
|
| 14 |
async def read_index(request: Request):
|
| 15 |
"""
|
| 16 |
Sirve el archivo principal de la aplicación, index.html.
|
|
|
|
|
|
|
| 17 |
"""
|
| 18 |
path = os.path.join(templates_dir, "index.html")
|
| 19 |
if os.path.exists(path):
|
|
|
|
| 21 |
return {"error": "index.html not found"}
|
| 22 |
|
| 23 |
# --- Montaje de la App en Gradio ---
|
| 24 |
+
# Creamos el bloque de Gradio que servirá de contenedor.
|
| 25 |
+
# La interfaz visual de Gradio no es importante aquí, solo su capacidad de servidor.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
with gr.Blocks(title="Synapse AI") as demo:
|
| 27 |
+
gr.HTML("""
|
| 28 |
+
<div style="text-align: center; padding: 20px; color: #888;">
|
| 29 |
+
<h1>Synapse AI Backend</h1>
|
| 30 |
+
<p>El servidor está activo. La aplicación principal se sirve directamente.</p>
|
| 31 |
+
<p>Cargando la conciencia colectiva...</p>
|
| 32 |
+
</div>
|
| 33 |
+
""")
|
| 34 |
|
| 35 |
+
# Montamos la app de FastAPI dentro de la app de Gradio.
|
| 36 |
+
# Esta es la parte que permite a Gradio manejar las rutas de FastAPI.
|
| 37 |
app = gr.mount_gradio_app(app, demo, path="/")
|
| 38 |
|
| 39 |
+
# ===================================================================
|
| 40 |
+
# LA CORRECCIÓN CLAVE ESTÁ AQUÍ
|
| 41 |
+
# ===================================================================
|
| 42 |
+
# Le decimos explícitamente a Gradio que inicie el servidor web y se quede
|
| 43 |
+
# escuchando. Esta es la línea que faltaba. Sin ella, el script
|
| 44 |
+
# simplemente termina su ejecución.
|
| 45 |
+
if __name__ == "__main__":
|
| 46 |
+
demo.launch(server_name="0.0.0.0")
|