File size: 2,620 Bytes
2f56820 c90e940 2f56820 051aafd 2f56820 045a969 2f56820 045a969 05036c9 2f56820 05036c9 2f56820 045a969 2f56820 |
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 74 75 76 77 78 79 80 81 |
import pandas as pd
import gradio as gr
import os
from datasets import load_dataset, Dataset, concatenate_datasets
import datetime
scoreDatasetName = "NAMAA-Space/egyptian_leaderboard_scores"
requestsDatasetName = "oddadmix/egyptian_leaderboard_requests"
def show_leaderboard():
leaderboard = load_dataset(scoreDatasetName, split="train").to_pandas()
## only leave unique with hightst bleu value
leaderboard = leaderboard.groupby("model_name").agg({"bleu": "max", "meteor": "max", "chrf": "max"}).reset_index()
return leaderboard.sort_values(by="bleu", ascending=False)
def submit_to_leaderboard(model_name, model_type, revision, model_prompt):
requestsDataset = load_dataset(requestsDatasetName, split="train")
found = requestsDataset.filter(lambda x: x["model_name"] == model_name)
if len(found) > 0:
return "Model already submitted to the leaderboard"
newRequest = Dataset.from_list([{
"model_name": model_name,
"submission_time": pd.Timestamp.now(),
"model_type": model_type,
"status": "pending",
"revision": revision,
"prompt": model_prompt
}])
finalRequestsDataset = concatenate_datasets([ requestsDataset , newRequest])
finalRequestsDataset.push_to_hub(requestsDatasetName, private=True)
return "Model submitted to the leaderboard"
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# English-to-Egyptian Arabic Translation Leaderboard")
gr.Markdown("## [Try Masrawy Now!!](https://huggingface.co/spaces/oddadmix/Masrawy-English-To-Egyptian)")
leaderboard_output = gr.DataFrame(label="Leaderboard", value=show_leaderboard())
with gr.Row():
with gr.Column():
gr.Markdown("## Submit Model to the Leaderboard")
model_input = gr.Textbox(label="Model Name", placeholder="Enter the model's Hugging Face name...")
## model type translation or text-generation
model_type = gr.Radio(choices=["translation", "text-generation"], label="Model Type")
revision = gr.Textbox(label="Revision", placeholder="Enter the model's revision...")
model_prompt = gr.Textbox(label="Model Prompt", placeholder="Enter the model's prompt if it's a text-generation model as prefix...")
submit_btn = gr.Button("Submit")
message = gr.Textbox(label="Message")
# leaderboard_btn = gr.Button("Show Leaderboard")/
submit_btn.click(
submit_to_leaderboard,
inputs=[model_input, model_type, revision, model_prompt],
outputs=[message]
)
demo.launch()
|