File size: 4,136 Bytes
a8a332f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
82
83
84
85
86
87
88
89
90
91
import json
import streamlit as st
import pandas as pd
import seaborn as sns


# Function to load data from JSON file
def load_data(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        data = json.load(file)
    return pd.DataFrame(data)

# Function to style the DataFrame
def style_dataframe(df: pd.DataFrame):
    df['Wyniki'] = df.apply(lambda row: [row['Analiza wydźwięku'], row['Znajomość związków frazeologicznych'], row['Zrozumienie tekstu']], axis=1)

    # Insert the new column after the 'Średnia' column
    cols = list(df.columns)
    cols.insert(cols.index('Średnia') + 1, cols.pop(cols.index('Wyniki')))
    df = df[cols]

    # df = st.data_editor(df, column_config={
    #                             'Średnia': st.column_config.NumberColumn('Średnia'),
    #                             'Wyniki': st.column_config.BarChartColumn(
    #                                 "Wyniki", help="Zestawienie wyników poszczególnych zadań",
    #                                 y_min=0,y_max=100,),
    #                             'Analiza wydźwięku': st.column_config.NumberColumn('Wydźwięk', help='Umiejętność analizy wydźwięku'),
    #                             'Znajomość związków frazeologicznych': st.column_config.NumberColumn('Frazeologizmy', help='Znajomość związków frazeologicznych'),
    #                             'Zrozumienie tekstu': st.column_config.NumberColumn('Zrozumienie tekstu', help='Umiejętność zrozumienia tekstu'),
    #                             },hide_index=True, disabled=True)

    # Create a color ramp using Seaborn
    return df

def styler(df: pd.DataFrame):
    palette = sns.color_palette("RdYlGn", as_cmap=True)
    styled_df = df.style.background_gradient(cmap=palette, subset=["Średnia", "Analiza wydźwięku", "Znajomość związków frazeologicznych", "Zrozumienie tekstu"]).format(precision=2)
    # styled_df = styled_df.style.map('text-align: left;', subset=["Średnia", "Analiza wydźwięku", "Znajomość związków frazeologicznych", "Zrozumienie tekstu"])
    return styled_df

# Load data from JSON file
data = load_data('data.json')


# Streamlit app
st.set_page_config(layout="wide")
st.markdown("""

        <style>

               .block-container {

                    padding-top: 3%;

                    padding-bottom: 1%;

                    padding-left: 10%;

                    padding-right: 10%;

                    scrollbar-width: thin;

                }

        </style>

        """, unsafe_allow_html=True)

st.title("Benchmark Modeli LLM")
st.subheader("z sarkazmami i idiomami w języku polskim")



# Create tabs
tab1, tab2 = st.tabs(["Wyniki", "Opis"])

with tab1:
    st.write("Poniżej znajduje się tabela przedstawiająca wyniki benchmarku dla różnych modeli LLM.")

    # Display the styled DataFrame
    styled_df_show = style_dataframe(data)
    styled_df_show = styler(styled_df_show)
    # st.dataframe(styled_df_show)

    st.data_editor(styled_df_show, column_config={
                    'Średnia': st.column_config.NumberColumn('Średnia'),
                    'Wyniki': st.column_config.BarChartColumn(
                        "Wyniki", help="Zestawienie wyników poszczególnych zadań",
                        y_min=0,y_max=100,),
                    'Analiza wydźwięku': st.column_config.NumberColumn('Wydźwięk', help='Umiejętność analizy wydźwięku'),
                    'Znajomość związków frazeologicznych': st.column_config.NumberColumn('Frazeologizmy', help='Znajomość związków frazeologicznych'),
                    'Zrozumienie tekstu': st.column_config.NumberColumn('Zrozumienie tekstu', help='Umiejętność zrozumienia tekstu'),
                    },hide_index=True, disabled=True)

with tab2:
    st.header("Opis")
    st.write("Tutaj znajduje się trochę tekstu jako wypełniacz.")
    st.write("To jest przykładowy tekst, który może zawierać dodatkowe informacje o benchmarku, metodologii, itp.")

# Run the app with `streamlit run your_script.py`