Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -660,112 +660,120 @@ first_model = next(iter(models.values()))
|
|
| 660 |
category_choices = list(first_model['scores'].keys())
|
| 661 |
|
| 662 |
with gr.Blocks(css=css) as demo:
|
| 663 |
-
gr.Markdown("# AI System Social Impact Dashboard")
|
| 664 |
-
|
| 665 |
-
initial_df = create_leaderboard(category_choices)
|
| 666 |
|
| 667 |
with gr.Row():
|
| 668 |
-
tab_selection = gr.Radio(
|
| 669 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 670 |
|
| 671 |
with gr.Row():
|
| 672 |
-
|
| 673 |
-
|
| 674 |
-
|
| 675 |
-
|
| 676 |
-
|
| 677 |
-
|
| 678 |
-
|
| 679 |
-
|
| 680 |
-
|
| 681 |
-
|
| 682 |
-
|
| 683 |
-
|
| 684 |
-
|
| 685 |
category_filter = gr.CheckboxGroup(choices=category_choices,
|
| 686 |
label="Filter Categories",
|
| 687 |
value=category_choices)
|
| 688 |
|
| 689 |
with gr.Column(visible=True) as leaderboard_tab:
|
|
|
|
| 690 |
leaderboard_output = gr.DataFrame(
|
| 691 |
value=initial_df,
|
| 692 |
interactive=False,
|
| 693 |
-
wrap=True
|
| 694 |
-
datatype=["markdown", "markdown", "markdown"] + ["markdown"] * (len(category_choices)+1) # Support markdown in all columns
|
| 695 |
)
|
| 696 |
|
| 697 |
-
|
| 698 |
-
|
| 699 |
-
|
| 700 |
-
|
| 701 |
|
| 702 |
with gr.Column(visible=False) as detailed_scorecard_tab:
|
| 703 |
-
|
| 704 |
all_category_cards = gr.HTML()
|
| 705 |
total_score = gr.Markdown()
|
| 706 |
|
| 707 |
-
def update_dashboard(tab,
|
| 708 |
-
#
|
| 709 |
component_states = {
|
| 710 |
"leaderboard": False,
|
| 711 |
-
"category_chart": False,
|
| 712 |
"detailed_scorecard": False,
|
| 713 |
-
"
|
| 714 |
-
"
|
| 715 |
}
|
| 716 |
|
| 717 |
-
#
|
| 718 |
outputs = {
|
| 719 |
"leaderboard": None,
|
| 720 |
-
"category_chart": None,
|
| 721 |
-
"
|
| 722 |
"category_cards": None,
|
| 723 |
"total_score": None
|
| 724 |
}
|
| 725 |
|
| 726 |
-
# Update visibility based on selected tab
|
| 727 |
if tab == "Leaderboard":
|
| 728 |
component_states["leaderboard"] = True
|
| 729 |
outputs["leaderboard"] = create_leaderboard(selected_categories)
|
| 730 |
|
| 731 |
-
|
| 732 |
-
|
| 733 |
-
|
| 734 |
-
|
| 735 |
-
|
|
|
|
| 736 |
|
| 737 |
elif tab == "Detailed Scorecard":
|
| 738 |
component_states["detailed_scorecard"] = True
|
| 739 |
-
component_states["
|
| 740 |
-
if
|
| 741 |
-
scorecard_updates = update_detailed_scorecard(
|
| 742 |
-
outputs["
|
| 743 |
outputs["category_cards"] = scorecard_updates[1]
|
| 744 |
outputs["total_score"] = scorecard_updates[2]
|
| 745 |
|
| 746 |
-
# Return updates
|
| 747 |
return [
|
| 748 |
gr.update(visible=component_states["leaderboard"]),
|
| 749 |
-
gr.update(visible=component_states["category_chart"]),
|
| 750 |
gr.update(visible=component_states["detailed_scorecard"]),
|
| 751 |
-
gr.update(visible=component_states["
|
| 752 |
-
gr.update(visible=component_states["
|
| 753 |
outputs["leaderboard"] if outputs["leaderboard"] is not None else gr.update(),
|
| 754 |
-
outputs["category_chart"] if outputs["category_chart"] is not None else gr.update(),
|
| 755 |
-
outputs["
|
| 756 |
outputs["category_cards"] if outputs["category_cards"] is not None else gr.update(),
|
| 757 |
outputs["total_score"] if outputs["total_score"] is not None else gr.update()
|
| 758 |
]
|
| 759 |
|
| 760 |
# Set up event handlers
|
| 761 |
-
for component in [tab_selection,
|
| 762 |
component.change(
|
| 763 |
fn=update_dashboard,
|
| 764 |
-
inputs=[tab_selection,
|
| 765 |
-
outputs=[leaderboard_tab,
|
| 766 |
-
|
| 767 |
-
|
| 768 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 769 |
)
|
| 770 |
|
| 771 |
# Launch the app
|
|
|
|
| 660 |
category_choices = list(first_model['scores'].keys())
|
| 661 |
|
| 662 |
with gr.Blocks(css=css) as demo:
|
| 663 |
+
gr.Markdown("# AI System Social Impact Scorecard Dashboard")
|
|
|
|
|
|
|
| 664 |
|
| 665 |
with gr.Row():
|
| 666 |
+
tab_selection = gr.Radio(
|
| 667 |
+
# ["Leaderboard", "Category Analysis", "Detailed Scorecard"], # Original tabs
|
| 668 |
+
["Leaderboard", "Detailed Scorecard"], # Current tabs
|
| 669 |
+
label="Select Tab",
|
| 670 |
+
value="Leaderboard"
|
| 671 |
+
)
|
| 672 |
|
| 673 |
with gr.Row():
|
| 674 |
+
system_chooser = gr.Dropdown(choices=[""] + list(models.keys()),
|
| 675 |
+
label="Select AI System for Details",
|
| 676 |
+
value="",
|
| 677 |
+
interactive=True, visible=False)
|
| 678 |
+
# Commenting out multi-chooser for now
|
| 679 |
+
# system_multi_chooser = gr.Dropdown(choices=list(models.keys()),
|
| 680 |
+
# label="Select AI Systems for Comparison",
|
| 681 |
+
# value=[],
|
| 682 |
+
# multiselect=True,
|
| 683 |
+
# interactive=True,
|
| 684 |
+
# visible=False,
|
| 685 |
+
# info="Select one or more AI systems")
|
| 686 |
+
|
| 687 |
category_filter = gr.CheckboxGroup(choices=category_choices,
|
| 688 |
label="Filter Categories",
|
| 689 |
value=category_choices)
|
| 690 |
|
| 691 |
with gr.Column(visible=True) as leaderboard_tab:
|
| 692 |
+
initial_df = create_leaderboard(category_choices)
|
| 693 |
leaderboard_output = gr.DataFrame(
|
| 694 |
value=initial_df,
|
| 695 |
interactive=False,
|
| 696 |
+
wrap=True
|
|
|
|
| 697 |
)
|
| 698 |
|
| 699 |
+
# Commenting out category analysis tab for now
|
| 700 |
+
# with gr.Column(visible=False) as category_analysis_tab:
|
| 701 |
+
# initial_plot = create_category_chart([], category_choices)
|
| 702 |
+
# category_chart = gr.Plot(value=initial_plot)
|
| 703 |
|
| 704 |
with gr.Column(visible=False) as detailed_scorecard_tab:
|
| 705 |
+
system_metadata = gr.HTML()
|
| 706 |
all_category_cards = gr.HTML()
|
| 707 |
total_score = gr.Markdown()
|
| 708 |
|
| 709 |
+
def update_dashboard(tab, selected_system, selected_categories):
|
| 710 |
+
# Original component states
|
| 711 |
component_states = {
|
| 712 |
"leaderboard": False,
|
| 713 |
+
# "category_chart": False, # Commented out
|
| 714 |
"detailed_scorecard": False,
|
| 715 |
+
"system_chooser": False,
|
| 716 |
+
# "system_multi_chooser": False, # Commented out
|
| 717 |
}
|
| 718 |
|
| 719 |
+
# Original outputs
|
| 720 |
outputs = {
|
| 721 |
"leaderboard": None,
|
| 722 |
+
# "category_chart": None, # Commented out
|
| 723 |
+
"system_metadata": None,
|
| 724 |
"category_cards": None,
|
| 725 |
"total_score": None
|
| 726 |
}
|
| 727 |
|
|
|
|
| 728 |
if tab == "Leaderboard":
|
| 729 |
component_states["leaderboard"] = True
|
| 730 |
outputs["leaderboard"] = create_leaderboard(selected_categories)
|
| 731 |
|
| 732 |
+
# Commenting out Category Analysis tab handling
|
| 733 |
+
# elif tab == "Category Analysis":
|
| 734 |
+
# component_states["category_chart"] = True
|
| 735 |
+
# component_states["system_multi_chooser"] = True
|
| 736 |
+
# if selected_systems:
|
| 737 |
+
# outputs["category_chart"] = create_category_chart(selected_systems, selected_categories)
|
| 738 |
|
| 739 |
elif tab == "Detailed Scorecard":
|
| 740 |
component_states["detailed_scorecard"] = True
|
| 741 |
+
component_states["system_chooser"] = True
|
| 742 |
+
if selected_system:
|
| 743 |
+
scorecard_updates = update_detailed_scorecard(selected_system, selected_categories)
|
| 744 |
+
outputs["system_metadata"] = scorecard_updates[0]
|
| 745 |
outputs["category_cards"] = scorecard_updates[1]
|
| 746 |
outputs["total_score"] = scorecard_updates[2]
|
| 747 |
|
| 748 |
+
# Return updates with commented out components removed
|
| 749 |
return [
|
| 750 |
gr.update(visible=component_states["leaderboard"]),
|
| 751 |
+
# gr.update(visible=component_states["category_chart"]), # Commented out
|
| 752 |
gr.update(visible=component_states["detailed_scorecard"]),
|
| 753 |
+
gr.update(visible=component_states["system_chooser"]),
|
| 754 |
+
# gr.update(visible=component_states["system_multi_chooser"]), # Commented out
|
| 755 |
outputs["leaderboard"] if outputs["leaderboard"] is not None else gr.update(),
|
| 756 |
+
# outputs["category_chart"] if outputs["category_chart"] is not None else gr.update(), # Commented out
|
| 757 |
+
outputs["system_metadata"] if outputs["system_metadata"] is not None else gr.update(),
|
| 758 |
outputs["category_cards"] if outputs["category_cards"] is not None else gr.update(),
|
| 759 |
outputs["total_score"] if outputs["total_score"] is not None else gr.update()
|
| 760 |
]
|
| 761 |
|
| 762 |
# Set up event handlers
|
| 763 |
+
for component in [tab_selection, system_chooser, category_filter]: # Removed system_multi_chooser
|
| 764 |
component.change(
|
| 765 |
fn=update_dashboard,
|
| 766 |
+
inputs=[tab_selection, system_chooser, category_filter], # Removed system_multi_chooser
|
| 767 |
+
outputs=[leaderboard_tab,
|
| 768 |
+
# category_analysis_tab, # Commented out
|
| 769 |
+
detailed_scorecard_tab,
|
| 770 |
+
system_chooser,
|
| 771 |
+
# system_multi_chooser, # Commented out
|
| 772 |
+
leaderboard_output,
|
| 773 |
+
# category_chart, # Commented out
|
| 774 |
+
system_metadata,
|
| 775 |
+
all_category_cards,
|
| 776 |
+
total_score]
|
| 777 |
)
|
| 778 |
|
| 779 |
# Launch the app
|