Spaces:
Paused
Paused
File size: 1,624 Bytes
4223796 f2de3e6 4223796 ef00091 4223796 ef00091 4223796 ef00091 4223796 ef00091 | 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 | import os
import sys
import subprocess
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("hf_app")
# Satisfy Hugging Face ZeroGPU check if ZeroGPU hardware is selected
try:
import spaces
@spaces.GPU(duration=1)
def _zero_gpu_init():
return True
_zero_gpu_init()
logger.info("ZeroGPU check satisfied.")
except Exception as e:
logger.info(f"ZeroGPU check skipped: {e}")
# Ensure Playwright browser binaries are installed
try:
logger.info("Verificando/instalando Playwright Chromium...")
subprocess.run([sys.executable, "-m", "playwright", "install", "chromium"], check=False)
except Exception as e:
logger.warning(f"Advertencia al instalar Playwright Chromium: {e}")
import gradio as gr
from app.main import app as fastapi_app
# Interfaz de Gradio
with gr.Blocks(title="CrowData API Backend") as gradio_ui:
gr.Markdown("# 🦅 CrowData API Backend")
gr.Markdown("El backend de CrowData (FastAPI) está ejecutándose correctamente en Hugging Face Spaces con 16 GB RAM.")
gr.Markdown("### 🔗 Accesos Directos:")
gr.Markdown("- 📄 [Documentación de la API (Swagger UI)](/docs)")
gr.Markdown("- 🩺 [Health Check](/api/health)")
# Montar la interfaz de Gradio en /gradio sobre la app de FastAPI
app = gr.mount_gradio_app(fastapi_app, gradio_ui, path="/gradio")
# Exportar 'demo' apuntando a 'app' para que el ejecutor de Hugging Face Gradio Spaces lo sirva directamente
demo = app
if __name__ == "__main__":
import uvicorn
port = int(os.environ.get("PORT", 7860))
uvicorn.run(app, host="0.0.0.0", port=port)
|