File size: 2,515 Bytes
8772b50
 
 
 
f646fc1
 
8772b50
 
 
 
 
 
 
f646fc1
e7d518b
f646fc1
 
8772b50
 
f646fc1
8772b50
f646fc1
 
 
 
8772b50
f646fc1
8772b50
 
f646fc1
8772b50
 
 
7e055ad
 
8772b50
 
7e055ad
8772b50
 
f646fc1
e7d518b
 
 
8772b50
 
 
 
7e055ad
 
 
8772b50
 
f646fc1
e7d518b
 
 
 
8772b50
 
 
 
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
from typing import List
import gradio as gr
import pandas as pd

from app.backend.constant import LEADERBOARD_MAP
from app.backend.data_engine import DataEngine, COLUMNS_TYPES


class SubtabsComponent:

    def __init__(self, data_engine: DataEngine):
        self.data_engine = data_engine

    def show(self, navigations: str = None, model_provides: List = None, evaluation_metrics: str = None,
             embd_dtypes: str = None, embd_dims: List = None, similarity: str = None, max_tokens: int = None):

        df_result = self.data_engine.jsons_to_df()

        navigations = "Text" if navigations is None else navigations.split(" ", maxsplit=1)[0]

        evaluation_metrics = "NDCG@10" if evaluation_metrics is None else evaluation_metrics
        embd_dtype = "all" if embd_dtypes is None else embd_dtypes
        embd_dims = [] if embd_dims is None else embd_dims
        similarity = "all" if similarity is None else similarity
        max_tokens = 0 if max_tokens is None else max_tokens

        df_result = self.data_engine.filter_df(df_result, embd_dtype, embd_dims, similarity, max_tokens)

        sort_col = evaluation_metrics.replace("@", '_at_').lower()

        df_result = df_result.sort_values(by=sort_col, ascending=False)

        items = []
        for group_name,leaderboards in LEADERBOARD_MAP.items():
            with gr.Column(visible=group_name.upper() == navigations.upper()) as column:
                with gr.Tabs():
                    with gr.TabItem("overall"):
                        df_leaderboard = df_result[df_result["group_name"] == group_name]
                        gr_df = gr.Dataframe(
                            df_leaderboard,
                            datatype=COLUMNS_TYPES,
                            # interactive=True,

                            type="pandas"
                        )

                        items.append(gr_df)

                    for leaderboard in leaderboards:
                        with gr.TabItem(leaderboard):
                            df = df_leaderboard[df_leaderboard["leaderboard"] == leaderboard]
                            gr_df = gr.Dataframe(
                                df,
                                datatype=COLUMNS_TYPES,
                                # interactive=True,
                                height=500,
                                type="pandas"

                            )
                            items.append(gr_df)
            items.append(column)
        return items