Alvaro Romo commited on
Commit
b7f9bcb
·
1 Parent(s): c2f297a

Added filter data

Browse files
Files changed (1) hide show
  1. app.py +51 -17
app.py CHANGED
@@ -19,6 +19,19 @@ HF_TOKEN = os.environ.get("HF_TOKEN", None)
19
  request_file = Path("user_request/") / f"data_{uuid.uuid4()}.json"
20
  request_folder = request_file.parent
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  scheduler = CommitScheduler(
23
  repo_id="iberbench/ivace-user-request",
24
  repo_type="dataset",
@@ -52,17 +65,6 @@ def get_url(html_content: str) -> str:
52
  @st.cache_data
53
  def load_data() -> pd.DataFrame:
54
  try:
55
- columns = [
56
- "eval_name",
57
- "Model",
58
- "Type",
59
- "Average ⬆️",
60
- "IFEval",
61
- "MMLU-PRO",
62
- "GPQA",
63
- "MUSR",
64
- "CO₂ cost (kg)",
65
- ]
66
  data = (
67
  load_dataset("open-llm-leaderboard/contents")["train"]
68
  .to_pandas()
@@ -72,14 +74,39 @@ def load_data() -> pd.DataFrame:
72
  data["Model"] = data["Model"].apply(get_url)
73
  data.sort_values(by="Average ⬆️", ascending=False, inplace=True)
74
  data.reset_index(drop=True, inplace=True)
 
 
 
75
  return data
76
  except FileNotFoundError:
77
  st.error("open-llm-leaderboard/contents was not found in the hub")
78
  return pd.DataFrame()
79
 
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  # streamlit UI
82
  leaderboard_data = load_data()
 
 
 
83
  tabs = st.tabs(["Leaderboard", "Submit model"])
84
 
85
  with tabs[0]:
@@ -101,13 +128,20 @@ with tabs[0]:
101
  """,
102
  unsafe_allow_html=True,
103
  )
104
- # leaderboard_cols = st.columns([0.1, 0.8, 0.1], vertical_alignment="center")
105
- # with leaderboard_cols[1]:
106
- if not leaderboard_data.empty:
107
- st.data_editor(
108
- leaderboard_data,
 
 
 
 
 
 
 
 
109
  column_config={"Model": st.column_config.LinkColumn("Model")},
110
- hide_index=False,
111
  )
112
  else:
113
  st.write("No data found to display on leaderboard.")
 
19
  request_file = Path("user_request/") / f"data_{uuid.uuid4()}.json"
20
  request_folder = request_file.parent
21
 
22
+ # column order
23
+ columns = [
24
+ "eval_name",
25
+ "Model",
26
+ "Type",
27
+ "Average ⬆️",
28
+ "IFEval",
29
+ "MMLU-PRO",
30
+ "GPQA",
31
+ "MUSR",
32
+ "CO₂ cost (kg)",
33
+ ]
34
+
35
  scheduler = CommitScheduler(
36
  repo_id="iberbench/ivace-user-request",
37
  repo_type="dataset",
 
65
  @st.cache_data
66
  def load_data() -> pd.DataFrame:
67
  try:
 
 
 
 
 
 
 
 
 
 
 
68
  data = (
69
  load_dataset("open-llm-leaderboard/contents")["train"]
70
  .to_pandas()
 
74
  data["Model"] = data["Model"].apply(get_url)
75
  data.sort_values(by="Average ⬆️", ascending=False, inplace=True)
76
  data.reset_index(drop=True, inplace=True)
77
+ # add column to apply filtering
78
+ data["Active"] = False
79
+
80
  return data
81
  except FileNotFoundError:
82
  st.error("open-llm-leaderboard/contents was not found in the hub")
83
  return pd.DataFrame()
84
 
85
 
86
+ # functions to create filter
87
+ def active_data() -> pd.DataFrame:
88
+ """Change all records as active"""
89
+ return st.session_state["leaderboard_data"][st.session_state["leaderboard_data"]["Active"] == True].copy()
90
+
91
+
92
+ def get_index(row) -> pd.Series:
93
+ """Get index of the row"""
94
+ return active_data().iloc[row].name
95
+
96
+
97
+ def commit() -> None:
98
+ """Commit changes to the session state"""
99
+ for row in st.session_state.editor["edited_rows"]:
100
+ row_index = get_index(row)
101
+ for key, value in st.session_state.editor["edited_rows"][row].items():
102
+ st.session_state["leaderboard_data"].at[row_index, key] = value
103
+
104
+
105
  # streamlit UI
106
  leaderboard_data = load_data()
107
+ if "leaderboard_data" not in st.session_state:
108
+ st.session_state["leaderboard_data"] = leaderboard_data
109
+
110
  tabs = st.tabs(["Leaderboard", "Submit model"])
111
 
112
  with tabs[0]:
 
128
  """,
129
  unsafe_allow_html=True,
130
  )
131
+
132
+ if not st.session_state["leaderboard_data"].empty:
133
+ name = st.text_input("Search for ...", on_change=commit)
134
+ if name == "":
135
+ st.session_state["leaderboard_data"].Active = True
136
+ else:
137
+ st.session_state["leaderboard_data"].Active = False
138
+ st.session_state["leaderboard_data"].loc[
139
+ st.session_state["leaderboard_data"]["Model"].str.contains(name, case=False), "Active"
140
+ ] = True
141
+
142
+ edited_data = st.data_editor(
143
+ active_data(), column_order=columns, key="editor", hide_index=False,
144
  column_config={"Model": st.column_config.LinkColumn("Model")},
 
145
  )
146
  else:
147
  st.write("No data found to display on leaderboard.")