# gradio_generator.py - Safe version for Hugging Face Spaces with Gradio v4.x | |
import gradio as gr | |
from deployer.simulator_interface import VirtualRobot | |
# Robot behavior logic | |
def robot_behavior(user_input: str): | |
bot = VirtualRobot() | |
user_input = user_input.lower().strip() | |
if any(greet in user_input for greet in ["hello", "hi", "hey", "welcome"]): | |
return bot.perform_action("wave") + "\n" + bot.perform_action("say Hello there!") | |
elif user_input.startswith("say"): | |
return bot.perform_action(user_input) | |
else: | |
return bot.perform_action("say I didn't understand that. Try again!") | |
# Build Gradio app | |
def launch_gradio_app(title="RoboSage App", description="Your robot, your voice."): | |
def build(): | |
inp = gr.Textbox(label="Speak or Type", lines=1) | |
out = gr.Textbox(label="Robot Response") | |
with gr.Blocks() as demo: | |
gr.Markdown(f"# π€ {title}\n{description}") | |
btn = gr.Button("Send") | |
btn.click(fn=robot_behavior, inputs=inp, outputs=out) | |
gr.Row([inp, btn]) | |
gr.Row([out]) | |
return demo | |
return build() | |
# Test standalone | |
if __name__ == "__main__": | |
app = launch_gradio_app() | |
app.launch() | |