MMLU-by-task / mmlu_data_to_example.py
Corey Morris
example code refactored to make it easier to swap out data source
6c46ed2
raw
history blame
1.72 kB
import gradio as gr
import requests
import pandas as pd
from huggingface_hub.hf_api import SpaceInfo
class BlocksSpace:
def __init__(self, url, name):
self.url = url
self.name = name
def fetch_spaces(self):
r = requests.get(self.url)
d = r.json()
spaces = [SpaceInfo(**x) for x in d]
blocks_spaces = {}
for i in range(0,len(spaces)):
if spaces[i].id.split('/')[0] == self.name and hasattr(spaces[i], 'likes') and spaces[i].id != f'{self.name}/Leaderboard' and spaces[i].id != f'{self.name}/README':
blocks_spaces[spaces[i].id]=spaces[i].likes
return blocks_spaces
def get_spaces_dataframe(self):
blocks_spaces = self.fetch_spaces()
df = pd.DataFrame(
[{"Spaces_Name": Spaces, "likes": likes} for Spaces,likes in blocks_spaces.items()])
df = df.sort_values(by=['likes'],ascending=False)
return df
block = gr.Blocks()
my_blocks_space = BlocksSpace("https://huggingface.co/api/spaces", "Gradio-Blocks")
with block:
gr.Markdown("""Leaderboard for the most popular Blocks Event Spaces. To learn more and join, see Blocks Party Event""")
with gr.Tabs():
with gr.TabItem("Blocks Party Leaderboard"):
with gr.Row():
data = gr.outputs.Dataframe(type="pandas")
with gr.Row():
data_run = gr.Button("Refresh")
data_run.click(my_blocks_space.get_spaces_dataframe, inputs=None, outputs=data)
# running the function on page load in addition to when the button is clicked
block.load(my_blocks_space.get_spaces_dataframe, inputs=None, outputs=data)
block.launch()