mgbam commited on
Commit
1b23b17
·
verified ·
1 Parent(s): cda81c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -47
app.py CHANGED
@@ -2,57 +2,58 @@ import os
2
  import gradio as gr
3
  from deployer.gradio_generator import deploy_callback, robot_behavior
4
 
5
- def main():
6
- # CSS to constrain width and add spacing
7
- custom_css = """
8
- .gradio-container { max-width: 900px; margin: auto; }
9
- .section { padding: 1rem 0; }
10
  """
 
11
 
12
- with gr.Blocks(css=custom_css) as demo:
13
- gr.Markdown("# 🚀 RoboSage")
14
- gr.Markdown("Generate your custom robot app, download it, then test it live.")
15
-
16
- # Section 1️⃣ Generate & Download
17
- with gr.Group(elem_id="section_generate"):
18
- gr.Markdown("## 1️⃣ Generate & Download App")
19
- idea_input = gr.Textbox(
20
- label="Your Robot Idea",
21
- placeholder="e.g. A friendly greeting robot.",
22
- lines=2
23
- )
24
- gen_btn = gr.Button("Generate App & ZIP")
25
- status_out = gr.Textbox(label="Status", interactive=False)
26
- zip_out = gr.File(label="Download App ZIP")
27
-
28
- gen_btn.click(
29
- fn=deploy_callback,
30
- inputs=idea_input,
31
- outputs=[status_out, zip_out]
32
- )
33
-
34
- # Section 2️⃣ Simulator
35
- with gr.Group(elem_id="section_simulator"):
36
- gr.Markdown("## 2️⃣ Robot Simulator")
37
- cmd_input = gr.Textbox(
38
- label="Command",
39
- placeholder="say 'hello' or 'You rock!'",
40
- lines=1
41
- )
42
- sim_btn = gr.Button("Send Command")
43
- sim_out = gr.Textbox(label="Robot Response", interactive=False)
44
-
45
- sim_btn.click(
46
- fn=robot_behavior,
47
- inputs=cmd_input,
48
- outputs=sim_out
49
- )
50
-
51
- # Launch settings
 
52
  demo.launch(
53
  server_name="0.0.0.0",
54
- server_port=int(os.getenv("PORT", 7860)),
55
- share=False
56
  )
57
 
58
  if __name__ == "__main__":
 
2
  import gradio as gr
3
  from deployer.gradio_generator import deploy_callback, robot_behavior
4
 
5
+ def generate_app(idea: str):
6
+ """
7
+ Gradio callback: returns (status_message, path_to_zip).
8
+ Gradio's File component will serve the zip.
 
9
  """
10
+ return deploy_callback(idea)
11
 
12
+ def main():
13
+ with gr.Blocks() as demo:
14
+ gr.Markdown("# 🚀 RoboSage\nGenerate & download a simple robot app, then test it live.")
15
+
16
+ with gr.Row():
17
+ # ▶️ Generate & Download App
18
+ with gr.Column():
19
+ gr.Markdown("## 1️⃣ Generate & Download App")
20
+ idea_input = gr.Textbox(
21
+ label="Your Robot Idea",
22
+ placeholder="e.g. A friendly greeting robot",
23
+ lines=2,
24
+ )
25
+ gen_btn = gr.Button("Generate App & ZIP")
26
+ status_out = gr.Textbox(label="Status", interactive=False)
27
+ zip_out = gr.File(label="Download App ZIP")
28
+
29
+ gen_btn.click(
30
+ fn=generate_app,
31
+ inputs=[idea_input],
32
+ outputs=[status_out, zip_out],
33
+ )
34
+
35
+ # ▶️ Robot Simulator
36
+ with gr.Column():
37
+ gr.Markdown("## 2️⃣ Robot Simulator")
38
+ cmd_input = gr.Textbox(
39
+ label="Command",
40
+ placeholder="say 'hello' or 'You rock!'",
41
+ lines=1,
42
+ )
43
+ sim_btn = gr.Button("Send Command")
44
+ sim_out = gr.Textbox(label="Robot Response", interactive=False)
45
+
46
+ sim_btn.click(
47
+ fn=robot_behavior,
48
+ inputs=[cmd_input],
49
+ outputs=[sim_out],
50
+ )
51
+
52
+ # Launch on Hugging Face Spaces or locally
53
  demo.launch(
54
  server_name="0.0.0.0",
55
+ server_port=int(os.environ.get("PORT", 7860)),
56
+ share=False,
57
  )
58
 
59
  if __name__ == "__main__":