import gradio as gr import pandas as pd # Function to load data from a given CSV file def load_data(version): file_path = f'versions/{version}.csv' # Assuming filenames are version1.csv, version2.csv, version3.csv return pd.read_csv(file_path) # Function for searching in the leaderboard def search_leaderboard(df, query): if query == "": return df else: return df[df['Method'].str.contains(query)] # Function to change the version of the leaderboard def change_version(version): new_df = load_data(version) return new_df # Initialize Gradio app demo = gr.Blocks() with demo: gr.Markdown("## Radio Leaderboard") with gr.Row(): version_dropdown = gr.Dropdown( choices=["llama", "phi", "stable-lm"], label="Select Version", value="llama", ) with gr.Row(): search_bar = gr.Textbox( placeholder="Search for methods...", show_label=False, ) leaderboard_table = gr.components.Dataframe( value=load_data("llama"), # Load initial version (version llama) interactive=True, visible=True, ) version_dropdown.change( change_version, inputs=version_dropdown, outputs=leaderboard_table ) search_bar.change( search_leaderboard, inputs=[leaderboard_table, search_bar], outputs=leaderboard_table ) # Launch the app demo.launch()