Alvaro Romo commited on
Commit
6aaf516
Β·
1 Parent(s): 1053127

Added lang tabs and filters

Browse files
Files changed (1) hide show
  1. app.py +61 -30
app.py CHANGED
@@ -31,6 +31,9 @@ columns = [
31
  "COβ‚‚ cost (kg)",
32
  ]
33
 
 
 
 
34
  scheduler = CommitScheduler(
35
  repo_id="iberbench/ivace-user-request",
36
  repo_type="dataset",
@@ -83,30 +86,69 @@ def load_data() -> pd.DataFrame:
83
 
84
 
85
  # functions to create filter
86
- def active_data() -> pd.DataFrame:
87
  """Change all records as active"""
88
- return st.session_state["leaderboard_data"][st.session_state["leaderboard_data"]["Active"] == True].copy()
 
 
89
 
90
 
91
- def get_index(row) -> pd.Series:
92
  """Get index of the row"""
93
- return active_data().iloc[row].name
94
 
95
 
96
- def commit() -> None:
97
  """Commit changes to the session state"""
98
- for row in st.session_state.editor["edited_rows"]:
99
- row_index = get_index(row)
100
- for key, value in st.session_state.editor["edited_rows"][row].items():
101
- st.session_state["leaderboard_data"].at[row_index, key] = value
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
 
104
  # streamlit UI
105
- leaderboard_data = load_data()
106
- if "leaderboard_data" not in st.session_state:
107
- st.session_state["leaderboard_data"] = leaderboard_data
 
 
108
 
109
  tabs = st.tabs(["Leaderboard", "Submit model"])
 
110
 
111
  with tabs[0]:
112
  # logo image
@@ -128,26 +170,16 @@ with tabs[0]:
128
  unsafe_allow_html=True,
129
  )
130
 
131
- if not st.session_state["leaderboard_data"].empty:
132
- name = st.text_input("Search for ...", on_change=commit)
133
- if name == "":
134
- st.session_state["leaderboard_data"].Active = True
135
- else:
136
- st.session_state["leaderboard_data"].Active = False
137
- st.session_state["leaderboard_data"].loc[
138
- st.session_state["leaderboard_data"]["Model"].str.contains(name, case=False), "Active"
139
- ] = True
140
 
141
- edited_data = st.data_editor(
142
- active_data(), column_order=columns, key="editor", hide_index=False,
143
- column_config={"Model": st.column_config.LinkColumn("Model")},
144
- )
145
- else:
146
- st.write("No data found to display on leaderboard.")
147
 
148
  with tabs[1]:
149
  st.header("Submit model")
150
- import streamlit as st
151
 
152
  def get_id_number(id_val):
153
  html_template = f"""
@@ -212,10 +244,9 @@ with tabs[1]:
212
  )
213
  model_type = st.selectbox(
214
  "Choose model type:",
215
- help="🟒 Pretrained: Base models trained on text using masked modeling 🟩 Continuously Pretrained: Extended training on additional corpus πŸ”Ά Fine-tuned: Domain-specific optimization πŸ’¬ Chat: Models using RLHF, DPO, or IFT for conversation 🀝 Merge: Combined weights without additional training",
216
  options=[
217
  "🟒 Pretrained",
218
- "🟩 Continuously Pretrained",
219
  "πŸ”Ά Fine-tuned",
220
  "πŸ’¬ Chat",
221
  "🀝 Merge",
 
31
  "COβ‚‚ cost (kg)",
32
  ]
33
 
34
+ # languages
35
+ lang_list = ["Spanish", "Galician", "Basque", "Argentinian", "Chilean"]
36
+
37
  scheduler = CommitScheduler(
38
  repo_id="iberbench/ivace-user-request",
39
  repo_type="dataset",
 
86
 
87
 
88
  # functions to create filter
89
+ def active_data(lang) -> pd.DataFrame:
90
  """Change all records as active"""
91
+ return st.session_state[f"leaderboard_data_{lang}"][
92
+ st.session_state[f"leaderboard_data_{lang}"]["Active"] == True
93
+ ].copy()
94
 
95
 
96
+ def get_index(lang, row) -> pd.Series:
97
  """Get index of the row"""
98
+ return active_data(lang).iloc[row].name
99
 
100
 
101
+ def commit(lang) -> None:
102
  """Commit changes to the session state"""
103
+ for row in st.session_state[f"edited_data_{lang}"]["edited_rows"]:
104
+ row_index = get_index(lang, row)
105
+ for key, value in st.session_state[f"edited_data_{lang}"][
106
+ "edited_rows"
107
+ ][row].items():
108
+ st.session_state[f"leaderboard_data_{lang}"].at[
109
+ row_index, key
110
+ ] = value
111
+
112
+
113
+ def create_search_per_language(lang: str, search_dict: dict):
114
+ if not st.session_state[f"leaderboard_data_{lang}"].empty:
115
+ search_dict[lang] = st.text_input(
116
+ "Search for ...",
117
+ key=f"search_input_{lang}",
118
+ on_change=commit,
119
+ kwargs={"lang": lang},
120
+ )
121
+ if search_dict[lang] == "":
122
+ st.session_state[f"leaderboard_data_{lang}"].Active = True
123
+ else:
124
+ st.session_state[f"leaderboard_data_{lang}"].Active = False
125
+ st.session_state[f"leaderboard_data_{lang}"].loc[
126
+ st.session_state[f"leaderboard_data_{lang}"][
127
+ "Model"
128
+ ].str.contains(search_dict[lang], case=False),
129
+ "Active",
130
+ ] = True
131
+
132
+ edited_data = st.data_editor(
133
+ active_data(lang),
134
+ column_order=columns,
135
+ key=f"edited_data_{lang}",
136
+ hide_index=False,
137
+ column_config={"Model": st.column_config.LinkColumn("Model")},
138
+ )
139
+ else:
140
+ st.write("No data found to display on leaderboard.")
141
 
142
 
143
  # streamlit UI
144
+ for lang in lang_list:
145
+ # todo: load a different dataset per language
146
+ leaderboard_data = load_data()
147
+ if f"leaderboard_data_{lang}" not in st.session_state:
148
+ st.session_state[f"leaderboard_data_{lang}"] = leaderboard_data
149
 
150
  tabs = st.tabs(["Leaderboard", "Submit model"])
151
+ search_dict = {}
152
 
153
  with tabs[0]:
154
  # logo image
 
170
  unsafe_allow_html=True,
171
  )
172
 
173
+ # create tabs per language
174
+ lang_tabs = st.tabs(lang_list)
175
+
176
+ for lang, lt in zip(lang_list, lang_tabs):
177
+ with lt:
178
+ create_search_per_language(lang, search_dict)
 
 
 
179
 
 
 
 
 
 
 
180
 
181
  with tabs[1]:
182
  st.header("Submit model")
 
183
 
184
  def get_id_number(id_val):
185
  html_template = f"""
 
244
  )
245
  model_type = st.selectbox(
246
  "Choose model type:",
247
+ help="🟒 Pretrained: Base models trained on text using masked modeling πŸ”Ά Fine-tuned: Domain-specific optimization πŸ’¬ Chat: Models using RLHF, DPO, or IFT for conversation 🀝 Merge: Combined weights without additional training",
248
  options=[
249
  "🟒 Pretrained",
 
250
  "πŸ”Ά Fine-tuned",
251
  "πŸ’¬ Chat",
252
  "🀝 Merge",