mini / app.py
cduss's picture
docker
b8c72c0
raw
history blame contribute delete
988 Bytes
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('<script src="/static/client.js"></script>')
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)