|
|
from dataclasses import dataclass |
|
|
from typing import List, Any |
|
|
import gradio as gr |
|
|
|
|
|
@dataclass |
|
|
class AutoEvalColumn: |
|
|
"""Column definition for the main leaderboard table""" |
|
|
name: str |
|
|
type: str |
|
|
|
|
|
def make_clickable_model(model_name: str) -> str: |
|
|
""" |
|
|
Convert model name to clickable link format for Gradio. |
|
|
""" |
|
|
if not model_name or model_name == "N/A": |
|
|
return model_name |
|
|
|
|
|
|
|
|
huggingface_url = f"https://huggingface.co/{model_name}" |
|
|
return f"[{model_name}]({huggingface_url})" |
|
|
|
|
|
def make_clickable_paper(paper_url: str) -> str: |
|
|
""" |
|
|
Convert paper URL to clickable link format for Gradio. |
|
|
""" |
|
|
if paper_url == "N/A" or not paper_url: |
|
|
return "N/A" |
|
|
|
|
|
return f'[π Paper]({paper_url})' |
|
|
|
|
|
def styled_error(message: str) -> str: |
|
|
"""Return a styled error message""" |
|
|
return f'<div style="color: red; background-color: #ffe6e6; padding: 10px; border-radius: 5px; border: 1px solid #ffcccc;">β {message}</div>' |
|
|
|
|
|
def styled_message(message: str) -> str: |
|
|
"""Return a styled success message""" |
|
|
return f'<div style="color: green; background-color: #e6ffe6; padding: 10px; border-radius: 5px; border: 1px solid #ccffcc;">β
{message}</div>' |
|
|
|
|
|
|
|
|
fields = lambda cls: [getattr(cls, field.name) for field in cls.__dataclass_fields__.values()] |
|
|
|
|
|
|
|
|
def get_imagenet_columns() -> List[AutoEvalColumn]: |
|
|
"""Get column definitions for ImageNet-1k leaderboard""" |
|
|
return [ |
|
|
AutoEvalColumn("Model", "markdown"), |
|
|
AutoEvalColumn("Top-1 Accuracy β¬οΈ", "number"), |
|
|
AutoEvalColumn("Top-5 Accuracy β¬οΈ", "number"), |
|
|
AutoEvalColumn("Parameters (M)", "number"), |
|
|
AutoEvalColumn("FLOPs (G)", "number"), |
|
|
AutoEvalColumn("Inference Time (ms)", "number"), |
|
|
AutoEvalColumn("Model Size (MB)", "number"), |
|
|
AutoEvalColumn("Paper", "markdown"), |
|
|
AutoEvalColumn("Year", "number"), |
|
|
AutoEvalColumn("License", "str") |
|
|
] |
|
|
|