File size: 2,698 Bytes
a74897e
1a014ff
a74897e
b787f43
b73db7d
1982aac
a2723b3
2e83d59
d692eef
b787f43
d692eef
 
 
a2723b3
2f2f3ae
 
d692eef
1982aac
 
 
95b7c61
2f2f3ae
 
b787f43
2f2f3ae
1840d1a
2f2f3ae
a2723b3
52101ad
9a140a8
52101ad
 
 
9a140a8
52101ad
 
 
 
 
 
 
 
 
250d5a2
52101ad
250d5a2
52101ad
 
1a014ff
a49fcac
1a014ff
 
 
 
a49fcac
1a014ff
 
 
 
5f9d5db
fd99fed
 
5062189
10ebec1
4777797
fd99fed
 
44a3392
fd99fed
 
1982aac
2f2f3ae
1982aac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import os
import time
os.system("wget https://raw.githubusercontent.com/Weyaxi/scrape-open-llm-leaderboard/main/openllm.py")
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

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=43200): # default to 12 hour
  time.sleep(how_much)
  try:
      api.restart_space(repo_id="Weyaxi/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 LLM Leaderboard Results PR Opener"
gradio_desc= """🎯 This tool's aim is to provide [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) results in the model card.

## 💭 What Does This Tool Do:

- This tool adds the [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_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

- Special thanks to [Clémentine Fourrier (clefourrier)](https://huggingface.co/clefourrier) for her help and contributions to the code.

- Special thanks to [Lucain Pouget (Wauplin)](https://huggingface.co/Wauplin) for assisting with the [Hugging Face Hub API](https://huggingface.co/docs/huggingface_hub/v0.5.1/en/package_reference/hf_api).
"""

with gr.Blocks() as demo:
    gr.HTML(f"""<h1 align="center" id="space-title">{gradio_title}</h1>""")
    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)
        
    submit_btn = gr.Button("Submit", variant="primary")   
    
    def validate_model_id(input_id, oauth_token: gr.OAuthToken):
        if "mattshumer/" in input_id:
            gr.Error("DON'T, DON'T SPAM THAT MODELS")
            return "DON'T, DON'T SPAM THAT MODELS"
        else:
            return commit(input_id, oauth_token=oauth_token.token)

    submit_btn.click(validate_model_id, model_id, output)

threading.Thread(target=refresh).start()
demo.launch()