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()