FaceSwapAll / main_app.py
LogicGoInfotechSpaces's picture
Configure HuggingFace Space for FastAPI with Docker SDK
0e17006
"""
Main app for HuggingFace Spaces - FastAPI with Gradio mounted.
FastAPI endpoints are at root, Gradio UI is at /gradio
"""
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
import gradio as gr
# Import FastAPI app
from fastapi_app import app as fastapi_app
# Import Gradio app components
from app import demo as gradio_demo
# Create main FastAPI app
main_app = FastAPI(title="FaceSwapAll - Combined API and UI")
# Mount FastAPI endpoints (they're already in fastapi_app)
# We'll include them directly
main_app.mount("/api", fastapi_app)
# Mount Gradio UI
main_app.mount("/gradio", WSGIMiddleware(gradio_demo.server))
# Also include health endpoint at root
@main_app.get("/")
def root():
return {
"message": "FaceSwapAll API",
"docs": "/docs",
"gradio_ui": "/gradio",
"api_endpoints": "/api"
}
# Re-export for uvicorn
app = main_app
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)