Spaces:
Sleeping
Sleeping
weird update
Browse files- app.py +24 -24
- src/populate.py +1 -1
app.py
CHANGED
|
@@ -79,6 +79,8 @@ def init_leaderboard(dataframe):
|
|
| 79 |
dataframe = pd.DataFrame(columns=columns)
|
| 80 |
logger.warning("Initializing empty leaderboard")
|
| 81 |
|
|
|
|
|
|
|
| 82 |
return Leaderboard(
|
| 83 |
value=dataframe,
|
| 84 |
datatype=[getattr(GUARDBENCH_COLUMN, col).type for col in DISPLAY_COLS],
|
|
@@ -93,6 +95,7 @@ def init_leaderboard(dataframe):
|
|
| 93 |
ColumnFilter(GUARDBENCH_COLUMN.model_type.name, type="checkboxgroup", label="Model types"),
|
| 94 |
],
|
| 95 |
interactive=False,
|
|
|
|
| 96 |
)
|
| 97 |
|
| 98 |
|
|
@@ -151,28 +154,24 @@ def submit_results(
|
|
| 151 |
|
| 152 |
def refresh_data(version=CURRENT_VERSION):
|
| 153 |
"""
|
| 154 |
-
Refresh the leaderboard data
|
| 155 |
"""
|
| 156 |
-
global LEADERBOARD_DF
|
| 157 |
try:
|
| 158 |
-
logger.info(f"Performing scheduled refresh of leaderboard data
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
except Exception as e:
|
| 170 |
logger.error(f"Error in scheduled refresh: {e}")
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
columns = [getattr(GUARDBENCH_COLUMN, col).name for col in DISPLAY_COLS]
|
| 174 |
-
LEADERBOARD_DF = pd.DataFrame(columns=columns)
|
| 175 |
-
return LEADERBOARD_DF
|
| 176 |
|
| 177 |
|
| 178 |
def update_leaderboards(version):
|
|
@@ -300,7 +299,7 @@ with demo:
|
|
| 300 |
with tabs:
|
| 301 |
with gr.TabItem("π
Leaderboard", elem_id="guardbench-leaderboard-tab", id=0):
|
| 302 |
with gr.Row():
|
| 303 |
-
refresh_button = gr.Button("Refresh Leaderboard"
|
| 304 |
version_selector = gr.Dropdown(
|
| 305 |
choices=BENCHMARK_VERSIONS,
|
| 306 |
label="Benchmark Version",
|
|
@@ -314,20 +313,20 @@ with demo:
|
|
| 314 |
with gr.Tabs(elem_classes="category-tabs") as category_tabs:
|
| 315 |
# First tab for average metrics across all categories
|
| 316 |
with gr.TabItem("π Overall Performance", elem_id="overall-tab"):
|
|
|
|
| 317 |
leaderboard = init_leaderboard(LEADERBOARD_DF)
|
| 318 |
|
| 319 |
# Create a tab for each category
|
| 320 |
for category in CATEGORIES:
|
| 321 |
with gr.TabItem(f"{category}", elem_id=f"category-{category.lower().replace(' ', '-')}-tab"):
|
|
|
|
| 322 |
category_df = get_category_leaderboard_df(category, version=CURRENT_VERSION)
|
|
|
|
| 323 |
category_leaderboard = init_leaderboard(category_df)
|
| 324 |
|
| 325 |
# Refresh button functionality
|
| 326 |
refresh_button.click(
|
| 327 |
-
fn=
|
| 328 |
-
init_leaderboard(get_leaderboard_df(version=version_selector.value)),
|
| 329 |
-
*[init_leaderboard(get_category_leaderboard_df(category, version=version_selector.value)) for category in CATEGORIES]
|
| 330 |
-
],
|
| 331 |
inputs=[],
|
| 332 |
outputs=[leaderboard] + [category_tabs.children[i].children[0] for i in range(1, len(CATEGORIES) + 1)]
|
| 333 |
)
|
|
@@ -486,8 +485,9 @@ with demo:
|
|
| 486 |
Last updated: {pd.Timestamp.now().strftime("%Y-%m-%d %H:%M:%S UTC")}
|
| 487 |
""")
|
| 488 |
|
|
|
|
| 489 |
scheduler = BackgroundScheduler()
|
| 490 |
-
scheduler.add_job(
|
| 491 |
scheduler.start()
|
| 492 |
|
| 493 |
# Launch the app
|
|
|
|
| 79 |
dataframe = pd.DataFrame(columns=columns)
|
| 80 |
logger.warning("Initializing empty leaderboard")
|
| 81 |
|
| 82 |
+
print("\n\n", "dataframe", dataframe, "--------------------------------\n\n")
|
| 83 |
+
|
| 84 |
return Leaderboard(
|
| 85 |
value=dataframe,
|
| 86 |
datatype=[getattr(GUARDBENCH_COLUMN, col).type for col in DISPLAY_COLS],
|
|
|
|
| 95 |
ColumnFilter(GUARDBENCH_COLUMN.model_type.name, type="checkboxgroup", label="Model types"),
|
| 96 |
],
|
| 97 |
interactive=False,
|
| 98 |
+
render=True,
|
| 99 |
)
|
| 100 |
|
| 101 |
|
|
|
|
| 154 |
|
| 155 |
def refresh_data(version=CURRENT_VERSION):
|
| 156 |
"""
|
| 157 |
+
Refresh the leaderboard data and update all components.
|
| 158 |
"""
|
|
|
|
| 159 |
try:
|
| 160 |
+
logger.info(f"Performing scheduled refresh of leaderboard data...")
|
| 161 |
+
# Get new data
|
| 162 |
+
main_df = get_leaderboard_df(version=version)
|
| 163 |
+
category_dfs = [get_category_leaderboard_df(category, version=version) for category in CATEGORIES]
|
| 164 |
+
|
| 165 |
+
# For Leaderboard components, we need to return just the dataframes
|
| 166 |
+
# The component will handle the update internally
|
| 167 |
+
return dict(
|
| 168 |
+
value=main_df
|
| 169 |
+
), *[dict(value=df) for df in category_dfs]
|
| 170 |
+
|
| 171 |
except Exception as e:
|
| 172 |
logger.error(f"Error in scheduled refresh: {e}")
|
| 173 |
+
return dict(value=leaderboard.value), *[dict(value=tab.children[0].value)
|
| 174 |
+
for tab in category_tabs.children[1:]]
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
|
| 177 |
def update_leaderboards(version):
|
|
|
|
| 299 |
with tabs:
|
| 300 |
with gr.TabItem("π
Leaderboard", elem_id="guardbench-leaderboard-tab", id=0):
|
| 301 |
with gr.Row():
|
| 302 |
+
refresh_button = gr.Button("Refresh Leaderboard")
|
| 303 |
version_selector = gr.Dropdown(
|
| 304 |
choices=BENCHMARK_VERSIONS,
|
| 305 |
label="Benchmark Version",
|
|
|
|
| 313 |
with gr.Tabs(elem_classes="category-tabs") as category_tabs:
|
| 314 |
# First tab for average metrics across all categories
|
| 315 |
with gr.TabItem("π Overall Performance", elem_id="overall-tab"):
|
| 316 |
+
print("LEADERBOARD_DF", LEADERBOARD_DF)
|
| 317 |
leaderboard = init_leaderboard(LEADERBOARD_DF)
|
| 318 |
|
| 319 |
# Create a tab for each category
|
| 320 |
for category in CATEGORIES:
|
| 321 |
with gr.TabItem(f"{category}", elem_id=f"category-{category.lower().replace(' ', '-')}-tab"):
|
| 322 |
+
print("category DF", category)
|
| 323 |
category_df = get_category_leaderboard_df(category, version=CURRENT_VERSION)
|
| 324 |
+
print("category DF", category_df)
|
| 325 |
category_leaderboard = init_leaderboard(category_df)
|
| 326 |
|
| 327 |
# Refresh button functionality
|
| 328 |
refresh_button.click(
|
| 329 |
+
fn=refresh_data,
|
|
|
|
|
|
|
|
|
|
| 330 |
inputs=[],
|
| 331 |
outputs=[leaderboard] + [category_tabs.children[i].children[0] for i in range(1, len(CATEGORIES) + 1)]
|
| 332 |
)
|
|
|
|
| 485 |
Last updated: {pd.Timestamp.now().strftime("%Y-%m-%d %H:%M:%S UTC")}
|
| 486 |
""")
|
| 487 |
|
| 488 |
+
# Set up the scheduler to refresh data periodically
|
| 489 |
scheduler = BackgroundScheduler()
|
| 490 |
+
scheduler.add_job(refresh_data, 'interval', minutes=30)
|
| 491 |
scheduler.start()
|
| 492 |
|
| 493 |
# Launch the app
|
src/populate.py
CHANGED
|
@@ -192,7 +192,7 @@ def get_category_leaderboard_df(category: str, version="v0") -> pd.DataFrame:
|
|
| 192 |
"last_updated": leaderboard_data.get("last_updated", datetime.now().isoformat()),
|
| 193 |
"version": version
|
| 194 |
}
|
| 195 |
-
print(filtered_leaderboard)
|
| 196 |
|
| 197 |
# Convert to DataFrame
|
| 198 |
return leaderboard_to_dataframe(filtered_leaderboard)
|
|
|
|
| 192 |
"last_updated": leaderboard_data.get("last_updated", datetime.now().isoformat()),
|
| 193 |
"version": version
|
| 194 |
}
|
| 195 |
+
# print(filtered_leaderboard)
|
| 196 |
|
| 197 |
# Convert to DataFrame
|
| 198 |
return leaderboard_to_dataframe(filtered_leaderboard)
|