Download deployer/gradio_generator.py from mgbam/robosage: direct link, hf CLI and curl.
- Browser
- Download file 3.46 kB
-
https://huggingface.co/spaces/mgbam/robosage/resolve/cf35a6b7f4576a381a238a7da608ba3b675a4ac4/deployer/gradio_generator.py
- Command line
-
hf download hf://spaces/mgbam/robosage@cf35a6b7f4576a381a238a7da608ba3b675a4ac4/deployer/gradio_generator.py
-
curl -L -o gradio_generator.py https://huggingface.co/spaces/mgbam/robosage/resolve/cf35a6b7f4576a381a238a7da608ba3b675a4ac4/deployer/gradio_generator.py
3.46 kB
| # gradio_generator.py - Robust Gradio Interface | |
| import gradio as gr | |
| from simulator_interface import VirtualRobot | |
| from typing import Optional | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| class RoboSageInterface: | |
| """Main application interface with lifecycle management.""" | |
| def __init__(self): | |
| self.robot = VirtualRobot() | |
| self.interface = self._create_interface() | |
| def _robot_response(self, user_input: str) -> str: | |
| """Process user input with error handling.""" | |
| if not user_input or not isinstance(user_input, str): | |
| logging.warning("Invalid input received") | |
| return "β Please enter valid text" | |
| try: | |
| logging.info("Processing input: %s", user_input) | |
| return self.robot.perform_action(user_input) | |
| except Exception as e: | |
| logging.error("Response generation failed: %s", str(e)) | |
| return f"β System error: {str(e)}" | |
| def _create_interface(self) -> gr.Blocks: | |
| """Build Gradio interface with proper component binding.""" | |
| with gr.Blocks( | |
| title="RoboSage", | |
| css=".gradio-container {max-width: 600px !important}" | |
| ) as interface: | |
| # Header section | |
| gr.Markdown(""" | |
| # π€ RoboSage | |
| ### Your personal virtual assistant | |
| """) | |
| # Interaction panel | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| self.input_box = gr.Textbox( | |
| label="Command Input", | |
| placeholder="Try 'hello' or 'say something'...", | |
| max_lines=3 | |
| ) | |
| with gr.Column(scale=1): | |
| self.submit_btn = gr.Button( | |
| "Send", | |
| variant="primary", | |
| size="lg" | |
| ) | |
| # Output section | |
| self.output_box = gr.Textbox( | |
| label="Robot Response", | |
| interactive=False, | |
| lines=5 | |
| ) | |
| # History section | |
| with gr.Accordion("Session History", open=False): | |
| self.history = gr.JSON( | |
| label="Command History", | |
| value={"commands": []} | |
| ) | |
| # Event handlers | |
| self.submit_btn.click( | |
| fn=self._robot_response, | |
| inputs=self.input_box, | |
| outputs=self.output_box | |
| ) | |
| self.input_box.submit( | |
| fn=self._robot_response, | |
| inputs=self.input_box, | |
| outputs=self.output_box | |
| ) | |
| return interface | |
| def launch_application() -> gr.Blocks: | |
| """Initialize and return the application interface.""" | |
| try: | |
| logging.info("Initializing RoboSage application") | |
| app = RoboSageInterface() | |
| return app.interface | |
| except Exception as e: | |
| logging.critical("Application failed to initialize: %s", str(e)) | |
| raise | |
| if __name__ == "__main__": | |
| # Production configuration | |
| app = launch_application() | |
| app.launch( | |
| server_name="0.0.0.0", | |
| server_port=7860, | |
| share=False, | |
| favicon_path=None, | |
| auth=None, | |
| ssl_verify=True, | |
| debug=False | |
| ) |