Spaces:
Sleeping
Sleeping
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
|