Download app.py from mgbam/robosage: direct link, hf CLI and curl.
- Browser
- Download file 2.12 kB
-
https://huggingface.co/spaces/mgbam/robosage/resolve/f6b05dc604c3dc8c59a50df72963d1adf238e9a7/app.py
- Command line
-
hf download hf://spaces/mgbam/robosage@f6b05dc604c3dc8c59a50df72963d1adf238e9a7/app.py
-
curl -L -o app.py https://huggingface.co/spaces/mgbam/robosage/resolve/f6b05dc604c3dc8c59a50df72963d1adf238e9a7/app.py
2.12 kB
| import os | |
| import asyncio | |
| import gradio as gr | |
| from deployer.gradio_generator import deploy_callback, robot_behavior | |
| # Synchronous wrapper: call the async deploy directly | |
| def generate_app(idea: str): | |
| """ | |
| Generate the robot app and package to a zip. | |
| Returns: | |
| status: str message | |
| zip_path: str path to zip file or None | |
| """ | |
| try: | |
| status, zip_path = asyncio.get_event_loop().run_until_complete( | |
| deploy_callback(idea) | |
| ) | |
| return status, zip_path or None | |
| except Exception as e: | |
| return f"❌ Failed to generate app: {e}", None | |
| # Build Gradio UI | |
| def main(): | |
| # Define Blocks container | |
| with gr.Blocks(css=".gradio-container { max-width: 900px; margin: auto; } .section { padding: 1rem; }") as demo: | |
| gr.Markdown("# 🚀 RoboSage\nGenerate & download a simple robot app, then test it live.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("## 1️⃣ Generate & Download App") | |
| idea_input = gr.Textbox(label="Your Robot Idea", placeholder="e.g. A friendly greeting robot", lines=2) | |
| gen_btn = gr.Button("Generate App & ZIP") | |
| status_out = gr.Textbox(label="Status", interactive=False) | |
| zip_out = gr.File(label="Download App ZIP") | |
| gen_btn.click(fn=generate_app, | |
| inputs=[idea_input], | |
| outputs=[status_out, zip_out]) | |
| with gr.Column(): | |
| gr.Markdown("## 2️⃣ Robot Simulator") | |
| cmd_input = gr.Textbox(label="Command", placeholder="say 'hello' or 'You rock!'", lines=1) | |
| sim_btn = gr.Button("Send Command") | |
| sim_out = gr.Textbox(label="Robot Response", interactive=False) | |
| sim_btn.click(fn=robot_behavior, | |
| inputs=[cmd_input], | |
| outputs=[sim_out]) | |
| demo.launch(server_name="0.0.0.0", | |
| server_port=int(os.environ.get("PORT", 7860)), | |
| share=False) | |
| if __name__ == "__main__": | |
| main() |