import gradio as gr from fastapi import FastAPI from fastapi.staticfiles import StaticFiles # 1. Build Gradio interface def build_ui(): with gr.Blocks() as demo: gr.Markdown("## đŸ•šī¸ Motor Control – External JS") for i in range(6): gr.Slider( minimum=0, maximum=1, step=0.01, value=0, label=f"motor_{i}", elem_id=f"motor_{i}", ) # Load external JS file from /static/client.js gr.HTML('') return demo demo = build_ui() # 2. Mount Gradio app into FastAPI app = FastAPI() app = gr.mount_gradio_app(app, demo, path="/") # 3. Serve static assets manually from "assets/" directory app.mount("/static", StaticFiles(directory="assets"), name="static") # 4. Launch manually via uvicorn if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860)