TheXeos's picture
Try change hooks
280d02d
raw
history blame
2.59 kB
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()
# launch
scheduler = BackgroundScheduler()
scheduler.add_job(func=init_matchmaking, trigger="interval", seconds=15000)
scheduler.start()
# 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()