import gradio as gr from src.utils import select_board TITLE = """

Pento-LLaVA 🤖🎯🎮

""" pento_llava_app = gr.Blocks() fig, targets, info = select_board('easy', 18, 0) # Update the figure to include a boundary/frame fig.update_layout( xaxis=dict(showline=True, linecolor='black', linewidth=2, showgrid=True, zeroline=True), yaxis=dict(showline=True, linecolor='black', linewidth=2, showgrid=True, zeroline=True), margin=dict(l=0, r=0, t=0, b=0), height=512, width=512 ) target_strs = [] for t in targets: target_strs.append(t['target_str']) def gen_new_board(value): value = int(value) fig, _, _ = select_board('easy', 18, value) # Update the figure to include a boundary/frame fig.update_layout( xaxis=dict(showline=True, linecolor='black', linewidth=2, showgrid=True, zeroline=True), yaxis=dict(showline=True, linecolor='black', linewidth=2, showgrid=True, zeroline=True), margin=dict(l=0, r=0, t=0, b=0), height=512, width=512 ) return fig def gen_info(value): value = int(value) _, _, info = select_board('easy', 18, value) return info def gen_target_str(value): value = int(value) _, _, info = select_board('easy', 18, value) target_info = info[0] target_str = f"Target piece for this episode is {target_info['piece_colour']} {target_info['piece_shape']} located at {target_info['piece_region']}" return target_str with pento_llava_app: gr.HTML(TITLE) with gr.Row(): with gr.Column(): main_board = gr.Plot(fig) with gr.Column(): with gr.Row(): select_board_items = gr.Dropdown( choices=range(512), interactive=True ) with gr.Row(): display_string = gr.HTML(value=gen_target_str(0)) select_board_items.change( fn=gen_new_board, inputs=[select_board_items], outputs=[main_board], queue=True ) select_board_items.change( fn=gen_target_str, inputs=[select_board_items], outputs=[display_string], queue=True ) pento_llava_app.load() pento_llava_app.queue() pento_llava_app.launch()