Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from sidekick import Sidekick | |
| async def setup(): | |
| sidekick = Sidekick() | |
| await sidekick.setup() | |
| return sidekick | |
| async def process_message(sidekick, message, success_criteria, history): | |
| results = await sidekick.run_superstep(message, success_criteria, history) | |
| return results, sidekick | |
| async def reset(): | |
| new_sidekick = Sidekick() | |
| await new_sidekick.setup() | |
| return "", "", None, new_sidekick | |
| def free_resources(sidekick): | |
| print("Cleaning up") | |
| try: | |
| if sidekick: | |
| sidekick.cleanup() | |
| except Exception as e: | |
| print(f"Exception during cleanup: {e}") | |
| with gr.Blocks(title="Personal Assistant", theme=gr.themes.Default(primary_hue="emerald")) as ui: | |
| gr.Markdown("## Personal Assistant") | |
| sidekick = gr.State(delete_callback=free_resources) | |
| with gr.Row(): | |
| chatbot = gr.Chatbot(label="AI Assistant", height=300, type="messages") | |
| with gr.Group(): | |
| with gr.Row(): | |
| message = gr.Textbox(show_label=False, placeholder="Your request to the AI Assistant") | |
| with gr.Row(): | |
| success_criteria = gr.Textbox( | |
| show_label=False, placeholder="What are your success critiera?" | |
| ) | |
| with gr.Row(): | |
| reset_button = gr.Button("Reset", variant="stop") | |
| go_button = gr.Button("Go!", variant="primary") | |
| ui.load(setup, [], [sidekick]) | |
| message.submit( | |
| process_message, [sidekick, message, success_criteria, chatbot], [chatbot, sidekick] | |
| ) | |
| success_criteria.submit( | |
| process_message, [sidekick, message, success_criteria, chatbot], [chatbot, sidekick] | |
| ) | |
| go_button.click( | |
| process_message, [sidekick, message, success_criteria, chatbot], [chatbot, sidekick] | |
| ) | |
| reset_button.click(reset, [], [message, success_criteria, chatbot, sidekick]) | |
| ui.launch(inbrowser=True) | |