import os import time from huggingface_hub import HfApi, HfFileSystem import time import pandas as pd import threading import gradio as gr from gradio_space_ci import enable_space_ci from functions import commit from pr_worker import run_pr_worker enable_space_ci() HF_TOKEN = os.getenv('HF_TOKEN') BOT_HF_TOKEN = os.getenv('BOT_HF_TOKEN') api = HfApi() fs = HfFileSystem() def refresh(how_much=3600): # default to 1 hour time.sleep(how_much) try: api.restart_space(repo_id="eduagarcia-temp/portuguese-leaderboard-results-to-modelcard") except Exception as e: print(f"Error while scraping leaderboard, trying again... {e}") refresh(600) # 10 minutes if any error happens gradio_title="🧐 Open Portuguese LLM Leaderboard Results PR Opener" gradio_desc= """ This a fork of the [🧐 Open LLM Leaderboard Results PR Opener ](https://huggingface.co/spaces/Weyaxi/leaderboard-results-to-modelcard) from [@Weyaxi](https://huggingface.co/Weyaxi) modfied to work with the [Open Portuguese LLM Leaderboard](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard). 🎯 This tool's aim is to provide [Open Portuguese LLM Leaderboard](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard) results in the model card. ## 💭 What Does This Tool Do: - This tool adds the [Open Portuguese LLM Leaderboard](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard) result of your model at the end of your model card. - This tool also adds evaluation results as your model's metadata to showcase the evaluation results as a widget. ## 🛠️ Backend The leaderboard's backend mainly runs on the [Hugging Face Hub API](https://huggingface.co/docs/huggingface_hub/v0.5.1/en/package_reference/hf_api). ## 🤝 Acknowledgements - Thanks to [Yağız Çalık (Weyaxi)](https://huggingface.co/Weyaxi) for creating the original [🧐 Open LLM Leaderboard Results PR Opener ](https://huggingface.co/spaces/Weyaxi/leaderboard-results-to-modelcard) tool. """ with gr.Blocks() as demo: gr.HTML(f"""

{gradio_title}

""") gr.Markdown(gradio_desc) with gr.Row(equal_height=False): with gr.Column(): model_id = gr.Textbox(label="Model ID or URL", lines=1) gr.LoginButton() with gr.Column(): output = gr.Textbox(label="Output", lines=1) gr.LogoutButton() submit_btn = gr.Button("Submit", variant="primary") submit_btn.click(commit, model_id, output) threading.Thread(target=refresh).start() threading.Thread(target=run_pr_worker).start() demo.launch()