Spaces:
Sleeping
Sleeping
""" | |
Main application for Dynamic Highscores system. | |
This file integrates all components into a unified application. | |
""" | |
import os | |
import gradio as gr | |
import threading | |
import time | |
from database_schema import DynamicHighscoresDB | |
from auth import HuggingFaceAuth, create_login_ui, setup_auth_handlers | |
from benchmark_selection import BenchmarkSelector, create_benchmark_selection_ui | |
from evaluation_queue import EvaluationQueue, create_model_submission_ui | |
from leaderboard import Leaderboard, create_leaderboard_ui | |
from sample_benchmarks import add_sample_benchmarks | |
# Initialize components in main thread | |
db = DynamicHighscoresDB() | |
auth_manager = HuggingFaceAuth(db) | |
benchmark_selector = BenchmarkSelector(db, auth_manager) | |
evaluation_queue = EvaluationQueue(db, auth_manager) | |
leaderboard = Leaderboard(db) | |
# Initialize sample benchmarks if none exist | |
print("Checking for existing benchmarks...") | |
benchmarks = db.get_benchmarks() | |
if not benchmarks or len(benchmarks) == 0: | |
print("No benchmarks found. Adding sample benchmarks...") | |
try: | |
num_added = add_sample_benchmarks() | |
print(f"Added {num_added} sample benchmarks.") | |
except Exception as e: | |
print(f"Error adding sample benchmarks: {str(e)}") | |
# Custom CSS | |
css = """ | |
.info-text { | |
background-color: rgba(53, 130, 220, 0.1); | |
padding: 12px; | |
border-radius: 8px; | |
border-left: 4px solid #3498db; | |
margin: 12px 0; | |
} | |
""" | |
# Create Gradio app - NO THEME, NO OAUTH | |
with gr.Blocks(css=css, title="Dynamic Highscores") as app: | |
gr.Markdown("# π Dynamic Highscores", elem_classes=["header"]) | |
gr.Markdown(""" | |
Welcome to Dynamic Highscores - a community benchmark platform for evaluating and comparing language models. | |
- **Add your own benchmarks** from HuggingFace datasets | |
- **Submit your models** for CPU-only evaluation | |
- **Compare performance** across different models and benchmarks | |
- **Filter results** by model type (Merge, Agent, Reasoning, Coding, etc.) | |
""", elem_classes=["info-text"]) | |
# Main tabs | |
with gr.Tabs() as tabs: | |
with gr.TabItem("π Leaderboard", id=0): | |
leaderboard_ui = create_leaderboard_ui(leaderboard, db) | |
with gr.TabItem("π Submit Model", id=1): | |
submission_ui = create_model_submission_ui(evaluation_queue, auth_manager, db) | |
with gr.TabItem("π Benchmarks", id=2): | |
benchmark_ui = create_benchmark_selection_ui(benchmark_selector, auth_manager) | |
# Launch the app | |
if __name__ == "__main__": | |
app.launch() |