Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import gradio as gr | |
from visualization import create_radar_plot | |
def compare_models(df, model_names=None): | |
if model_names is None or len(model_names) == 0: | |
model_names = [df.sort_values("Model Avg", ascending=False).iloc[0]["Model"]] | |
filtered_df = df[df["Model"].isin(model_names)] | |
radar_chart = create_radar_plot(df, model_names) | |
# Create styled table for model info | |
info_html = f""" | |
<div class="dark-table-container"> | |
<table class="dark-styled-table"> | |
<thead> | |
<tr> | |
<th>Model</th> | |
<th>Type</th> | |
<th>Average</th> | |
<th>I/O Cost</th> | |
<th>Single Turn</th> | |
<th>Multi Turn</th> | |
</tr> | |
</thead> | |
<tbody> | |
""" | |
for _, row in filtered_df.iterrows(): | |
info_html += f""" | |
<tr> | |
<td>{row['Model']}</td> | |
<td>{row['Model Type']}</td> | |
<td>{row['Model Avg']:.3f}</td> | |
<td>${row['IO Cost']:.2f}</td> | |
<td>{row['single turn perf']:.3f}</td> | |
<td>{row['multi turn perf']:.3f}</td> | |
</tr> | |
""" | |
info_html += """ | |
</tbody> | |
</table> | |
</div> | |
""" | |
return info_html, radar_chart | |
def create_model_comparison_tab(df, HEADER_CONTENT): | |
with gr.Tab("Model Comparison"): | |
gr.HTML(HEADER_CONTENT) | |
with gr.Column(): | |
# Filters row | |
with gr.Row(equal_height=True): | |
model_selector = gr.Dropdown( | |
choices=df["Model"].unique().tolist(), | |
value=df.sort_values("Model Avg", ascending=False).iloc[0]["Model"], | |
multiselect=True, | |
label="Select Models to Compare", | |
) | |
# Content | |
model_info = gr.HTML() | |
radar_plot = gr.Plot() | |
model_selector.change( | |
fn=lambda m: compare_models(df, m), | |
inputs=[model_selector], | |
outputs=[model_info, radar_plot], | |
) | |
return model_info, radar_plot | |