scrapling / app.py
GraziePrego's picture
Add app.py entry point
19741f2 verified
"""
Main application entry point for Scrapling Hugging Face Space.
Combines FastAPI REST API with Gradio web interface.
"""
import gradio as gr
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from api import app as fastapi_app
from scrapling.ui import create_ui
# Mount Gradio app onto FastAPI
def mount_gradio_app(fastapi_app, blocks, path="/"):
"""Mount Gradio blocks onto FastAPI app."""
from gradio.routes import mount_gradio_app as gr_mount
return gr_mount(fastapi_app, blocks, path=path)
# Create the combined application
app = mount_gradio_app(fastapi_app, create_ui(), path="/")
# Add custom route for API docs HTML page
@app.get("/docs", response_class=HTMLResponse)
async def custom_docs():
"""Serve custom HTML API documentation."""
with open("docs.html", "r") as f:
return f.read()
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)