Tricky questions and avarage calcs

#1
Files changed (2) hide show
  1. app.py +17 -70
  2. requirements.txt +2 -2
app.py CHANGED
@@ -239,83 +239,30 @@ with tab1:
239
  data[TRICKY_QUESTIONS_COLUMN_NAME] <= tricky_questions_slider[1])]
240
 
241
  # Extract unique provider names from the "Model" column
242
- providers = data["Model"].apply(lambda x: x.split('/')[0].lower()).unique()
243
- selected_providers = st.multiselect("Model providers", providers, default=providers)
 
 
244
  # Filter data based on selected providers
245
- data = data[data["Model"].apply(lambda x: x.split('/')[0].lower()).isin(selected_providers)]
246
-
247
-
248
- # Define all possible columns
249
- all_columns = {
250
- "Model": "Model",
251
- "Params": "Params",
252
- AVERAGE_COLUMN_NAME: "Average",
253
- IMPLICATURES_AVERAGE_COLUMN_NAME: "Impl. Avg",
254
- SENTIMENT_COLUMN_NAME: "Sentiment",
255
- UNDERSTANDING_COLUMN_NAME: "Understanding",
256
- PHRASEOLOGY_COLUMN_NAME: "Phraseology",
257
- TRICKY_QUESTIONS_COLUMN_NAME: "Tricky Questions"
258
- }
259
-
260
- # By default, all columns are selected
261
- default_columns = list(all_columns.keys())
262
-
263
- # Use pills to select visible columns in multi-selection mode
264
- selected_column_labels = st.pills(
265
- label="Visible columns",
266
- options=list(all_columns.values()),
267
- default=list(all_columns.values()), # Set all columns as default
268
- selection_mode="multi", # Enable multi-selection mode
269
- key="visible_columns_pills"
270
- )
271
-
272
- # Map selected labels back to column names
273
- reverse_mapping = {v: k for k, v in all_columns.items()}
274
- selected_columns = [reverse_mapping[label] for label in selected_column_labels]
275
-
276
- # If nothing is selected, show all columns
277
- if not selected_columns:
278
- selected_columns = default_columns
279
 
280
  # Display data
281
  styled_df_show = style_dataframe(data)
282
  styled_df_show = styler(styled_df_show)
283
 
284
- # Customize column_config based on selected columns
285
- column_config = {}
286
-
287
- # Set configuration for all columns
288
- if "Model" in styled_df_show.columns:
289
- column_config["Model"] = st.column_config.TextColumn("Model", help="Model name", width="large") if "Model" in selected_columns else None
290
-
291
- if "Params" in styled_df_show.columns:
292
- column_config["Params"] = st.column_config.NumberColumn("Params [B]") if "Params" in selected_columns else None
293
-
294
- if AVERAGE_COLUMN_NAME in styled_df_show.columns:
295
- column_config[AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(AVERAGE_COLUMN_NAME) if AVERAGE_COLUMN_NAME in selected_columns else None
296
-
297
- if IMPLICATURES_AVERAGE_COLUMN_NAME in styled_df_show.columns:
298
- column_config[IMPLICATURES_AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(IMPLICATURES_AVERAGE_COLUMN_NAME) if IMPLICATURES_AVERAGE_COLUMN_NAME in selected_columns else None
299
-
300
- if RESULTS_COLUMN_NAME in styled_df_show.columns:
301
- # Show Results only if Average is selected
302
- column_config[RESULTS_COLUMN_NAME] = st.column_config.BarChartColumn(
303
  "Bar chart of results", help="Summary of the results of each task",
304
- y_min=0, y_max=5) if AVERAGE_COLUMN_NAME in selected_columns else None
305
-
306
- if SENTIMENT_COLUMN_NAME in styled_df_show.columns:
307
- column_config[SENTIMENT_COLUMN_NAME] = st.column_config.NumberColumn(SENTIMENT_COLUMN_NAME, help='Ability to analyze sentiment') if SENTIMENT_COLUMN_NAME in selected_columns else None
308
-
309
- if UNDERSTANDING_COLUMN_NAME in styled_df_show.columns:
310
- column_config[UNDERSTANDING_COLUMN_NAME] = st.column_config.NumberColumn(UNDERSTANDING_COLUMN_NAME, help='Ability to understand language') if UNDERSTANDING_COLUMN_NAME in selected_columns else None
311
-
312
- if PHRASEOLOGY_COLUMN_NAME in styled_df_show.columns:
313
- column_config[PHRASEOLOGY_COLUMN_NAME] = st.column_config.NumberColumn(PHRASEOLOGY_COLUMN_NAME, help='Ability to understand phraseological compounds') if PHRASEOLOGY_COLUMN_NAME in selected_columns else None
314
-
315
- if TRICKY_QUESTIONS_COLUMN_NAME in styled_df_show.columns:
316
- column_config[TRICKY_QUESTIONS_COLUMN_NAME] = st.column_config.NumberColumn(TRICKY_QUESTIONS_COLUMN_NAME, help='Ability to understand tricky questions') if TRICKY_QUESTIONS_COLUMN_NAME in selected_columns else None
317
-
318
- st.data_editor(styled_df_show, column_config=column_config, hide_index=True, disabled=True, height=500)
319
 
320
  # Add selection for models and create a bar chart for selected models using the AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME
321
  # Add default selection of 3 best models from AVERAGE_COLUMN_NAME and 1 best model with "Bielik" in Model column
 
239
  data[TRICKY_QUESTIONS_COLUMN_NAME] <= tricky_questions_slider[1])]
240
 
241
  # Extract unique provider names from the "Model" column
242
+ providers = data["Model"].apply(
243
+ lambda x: x.split('/')[0].lower()).unique()
244
+ selected_providers = st.multiselect(
245
+ "Model providers", providers, default=providers)
246
  # Filter data based on selected providers
247
+ data = data[data["Model"].apply(lambda x: x.split(
248
+ '/')[0].lower()).isin(selected_providers)]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
 
250
  # Display data
251
  styled_df_show = style_dataframe(data)
252
  styled_df_show = styler(styled_df_show)
253
 
254
+ st.data_editor(styled_df_show, column_config={
255
+ "Model": st.column_config.TextColumn("Model", help="Model name", width="large"),
256
+ "Params": st.column_config.NumberColumn("Params [B]"),
257
+ AVERAGE_COLUMN_NAME: st.column_config.NumberColumn(AVERAGE_COLUMN_NAME),
258
+ RESULTS_COLUMN_NAME: st.column_config.BarChartColumn(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  "Bar chart of results", help="Summary of the results of each task",
260
+ y_min=0, y_max=5,),
261
+ SENTIMENT_COLUMN_NAME: st.column_config.NumberColumn(SENTIMENT_COLUMN_NAME, help='Ability to analyze sentiment'),
262
+ UNDERSTANDING_COLUMN_NAME: st.column_config.NumberColumn(UNDERSTANDING_COLUMN_NAME, help='Ability to understand language'),
263
+ PHRASEOLOGY_COLUMN_NAME: st.column_config.NumberColumn(PHRASEOLOGY_COLUMN_NAME, help='Ability to understand phraseological compounds'),
264
+ TRICKY_QUESTIONS_COLUMN_NAME: st.column_config.NumberColumn(TRICKY_QUESTIONS_COLUMN_NAME, help='Ability to understand tricky questions'),
265
+ }, hide_index=True, disabled=True, height=500)
 
 
 
 
 
 
 
 
 
266
 
267
  # Add selection for models and create a bar chart for selected models using the AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME
268
  # Add default selection of 3 best models from AVERAGE_COLUMN_NAME and 1 best model with "Bielik" in Model column
requirements.txt CHANGED
@@ -1,5 +1,5 @@
1
  pandas
2
  seaborn
3
  plotly
4
- streamlit==1.43
5
- st_social_media_links
 
1
  pandas
2
  seaborn
3
  plotly
4
+ streamlit
5
+ st_social_media_links