|
import gradio as gr |
|
from huggingface_hub import HfApi |
|
from matchmaking import * |
|
from background_task import init_matchmaking, get_elo_data |
|
from apscheduler.schedulers.background import BackgroundScheduler |
|
from utils import * |
|
|
|
matchmaking = Matchmaking() |
|
api = HfApi() |
|
|
|
|
|
scheduler = BackgroundScheduler() |
|
scheduler.add_job(func=init_matchmaking, trigger="interval", seconds=300) |
|
scheduler.start() |
|
|
|
|
|
def update_elos(): |
|
matchmaking.read_history() |
|
matchmaking.compute_elo() |
|
matchmaking.save_elo_data() |
|
|
|
|
|
with gr.Blocks() as block: |
|
gr.Markdown(f""" |
|
# ๐ AI vs. AI SoccerTwos Leaderboard โฝ |
|
|
|
In this leaderboard, you can find the ELO score and the rank of your trained model for the SoccerTwos environment. |
|
|
|
If you want to know more about a model, just **copy the username and model and paste them into the search bar**. |
|
|
|
๐ To visualize your agents competing check this demo: https://huggingface.co/spaces/unity/ML-Agents-SoccerTwos |
|
|
|
๐ค For more information about this AI vs. AI challenge and to participate? [Check this](https://huggingface.co/deep-rl-course/unit7) |
|
""") |
|
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() |
|
|