|
import json |
|
import requests |
|
from datasets import load_dataset |
|
import gradio as gr |
|
from huggingface_hub import HfApi, hf_hub_download, Repository |
|
from huggingface_hub.repocard import metadata_load |
|
import pandas as pd |
|
from matchmaking import * |
|
from background_task import init_matchmaking, run_background_loop |
|
from apscheduler.schedulers.background import BackgroundScheduler |
|
import asyncio |
|
|
|
|
|
DATASET_REPO_URL = "https://huggingface.co/datasets/CarlCochet/BotFightData" |
|
ELO_FILENAME = "soccer_elo.csv" |
|
HF_TOKEN = os.environ.get("HF_TOKEN") |
|
|
|
repo = Repository( |
|
local_dir="soccer_elo", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN |
|
) |
|
|
|
matchmaking = Matchmaking() |
|
api = HfApi() |
|
|
|
|
|
|
|
|
|
|
|
|
|
loop = asyncio.get_event_loop() |
|
loop.create_task(run_background_loop()) |
|
loop.run_forever() |
|
|
|
|
|
def get_elo_data() -> pd.DataFrame: |
|
repo.git_pull() |
|
data = pd.read_csv(os.path.join(DATASET_REPO_URL, "resolve", "main", ELO_FILENAME)) |
|
return data |
|
|
|
|
|
def update_elos(): |
|
matchmaking.read_history() |
|
matchmaking.compute_elo() |
|
matchmaking.save_elo_data() |
|
|
|
|
|
with gr.Blocks() as block: |
|
gr.Markdown(f""" |
|
# ๐ The Deep Reinforcement Learning Course Leaderboard ๐ |
|
|
|
This is the leaderboard of trained agents during the Deep Reinforcement Learning Course. A free course from beginner to expert. |
|
|
|
This is the Soccer environment leaderboard, use Ctrl+F to find your rank ๐ |
|
|
|
We use an ELO rating to sort the models. |
|
You **can click on the model's name** to be redirected to its model card which includes documentation. |
|
|
|
๐ค You want to try to train your agents? <a href="http://eepurl.com/ic5ZUD" target="_blank">Sign up to the Hugging Face free Deep Reinforcement Learning Course ๐ค </a>. |
|
|
|
You want to compare two agents? <a href="https://huggingface.co/spaces/ThomasSimonini/Compare-Reinforcement-Learning-Agents" target="_blank">It's possible using this Spaces demo ๐ </a>. |
|
|
|
๐ง There is an **environment missing?** Please open an issue. |
|
""") |
|
with gr.Row(): |
|
output = gr.components.Dataframe( |
|
value=get_elo_data(), |
|
headers=["Ranking ๐", "User ๐ค", "Model id ๐ค", "ELO ๐", "Games played ๐ฎ"], |
|
datatype=["number", "markdown", "markdown", "number", "number"] |
|
) |
|
with gr.Row(): |
|
refresh = gr.Button("Refresh") |
|
refresh.click(get_elo_data, inputs=[], outputs=output) |
|
|
|
block.launch() |
|
|