Spaces:
Paused
Paused
| 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 | |
| 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) | |