Spaces:
Runtime error
Runtime error
Better handling for metadata
Browse files- app.py +11 -6
- requirements.txt +10 -4
- utils.py +2 -2
app.py
CHANGED
|
@@ -5,9 +5,10 @@ from pathlib import Path
|
|
| 5 |
|
| 6 |
import pandas as pd
|
| 7 |
import streamlit as st
|
| 8 |
-
from datasets import get_dataset_config_names
|
| 9 |
from dotenv import load_dotenv
|
| 10 |
-
from
|
|
|
|
| 11 |
from tqdm import tqdm
|
| 12 |
|
| 13 |
from evaluation import filter_evaluated_models
|
|
@@ -62,7 +63,7 @@ def get_supported_metrics():
|
|
| 62 |
supported_metrics = []
|
| 63 |
for metric in tqdm(metrics):
|
| 64 |
try:
|
| 65 |
-
metric_func =
|
| 66 |
except Exception as e:
|
| 67 |
print(e)
|
| 68 |
print("Skipping the following metric, which cannot load:", metric)
|
|
@@ -144,10 +145,14 @@ with st.expander("Advanced configuration"):
|
|
| 144 |
if split["config"] == selected_config:
|
| 145 |
split_names.append(split["split"])
|
| 146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
selected_split = st.selectbox(
|
| 148 |
"Select a split",
|
| 149 |
split_names,
|
| 150 |
-
index=split_names.index(
|
| 151 |
)
|
| 152 |
|
| 153 |
# Select columns
|
|
@@ -322,8 +327,8 @@ with st.expander("Advanced configuration"):
|
|
| 322 |
list(set(supported_metrics) - set(TASK_TO_DEFAULT_METRICS[selected_task])),
|
| 323 |
)
|
| 324 |
st.info(
|
| 325 |
-
"Note: user-selected metrics will be run with their default arguments
|
| 326 |
-
|
| 327 |
)
|
| 328 |
|
| 329 |
with st.form(key="form"):
|
|
|
|
| 5 |
|
| 6 |
import pandas as pd
|
| 7 |
import streamlit as st
|
| 8 |
+
from datasets import get_dataset_config_names
|
| 9 |
from dotenv import load_dotenv
|
| 10 |
+
from evaluate import load
|
| 11 |
+
from huggingface_hub import list_datasets, list_metrics
|
| 12 |
from tqdm import tqdm
|
| 13 |
|
| 14 |
from evaluation import filter_evaluated_models
|
|
|
|
| 63 |
supported_metrics = []
|
| 64 |
for metric in tqdm(metrics):
|
| 65 |
try:
|
| 66 |
+
metric_func = load(metric)
|
| 67 |
except Exception as e:
|
| 68 |
print(e)
|
| 69 |
print("Skipping the following metric, which cannot load:", metric)
|
|
|
|
| 145 |
if split["config"] == selected_config:
|
| 146 |
split_names.append(split["split"])
|
| 147 |
|
| 148 |
+
if metadata is not None:
|
| 149 |
+
eval_split = metadata[0]["splits"].get("eval_split", None)
|
| 150 |
+
else:
|
| 151 |
+
eval_split = None
|
| 152 |
selected_split = st.selectbox(
|
| 153 |
"Select a split",
|
| 154 |
split_names,
|
| 155 |
+
index=split_names.index(eval_split) if eval_split is not None else 0,
|
| 156 |
)
|
| 157 |
|
| 158 |
# Select columns
|
|
|
|
| 327 |
list(set(supported_metrics) - set(TASK_TO_DEFAULT_METRICS[selected_task])),
|
| 328 |
)
|
| 329 |
st.info(
|
| 330 |
+
""""Note: user-selected metrics will be run with their default arguments. \
|
| 331 |
+
Check out the [available metrics](https://huggingface.co/metrics) for more details."""
|
| 332 |
)
|
| 333 |
|
| 334 |
with st.form(key="form"):
|
requirements.txt
CHANGED
|
@@ -1,6 +1,12 @@
|
|
| 1 |
-
huggingface-hub
|
| 2 |
python-dotenv
|
| 3 |
streamlit==1.2.0
|
| 4 |
-
datasets
|
| 5 |
-
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
huggingface-hub<0.8
|
| 2 |
python-dotenv
|
| 3 |
streamlit==1.2.0
|
| 4 |
+
datasets<2.3
|
| 5 |
+
evaluate<0.2
|
| 6 |
+
# Dataset specific deps
|
| 7 |
+
py7zr<0.19
|
| 8 |
+
openpyxl<3.1
|
| 9 |
+
# Metric specific deps
|
| 10 |
+
scikit-learn<1.2
|
| 11 |
+
# Dirty bug from Google
|
| 12 |
+
protobuf<=3.20.1
|
utils.py
CHANGED
|
@@ -40,7 +40,7 @@ def http_post(path: str, token: str, payload=None, domain: str = None, params=No
|
|
| 40 |
|
| 41 |
|
| 42 |
def http_get(path: str, domain: str, token: str = None, params: dict = None) -> requests.Response:
|
| 43 |
-
"""HTTP POST request to
|
| 44 |
try:
|
| 45 |
response = requests.get(
|
| 46 |
url=domain + path,
|
|
@@ -49,7 +49,7 @@ def http_get(path: str, domain: str, token: str = None, params: dict = None) ->
|
|
| 49 |
params=params,
|
| 50 |
)
|
| 51 |
except requests.exceptions.ConnectionError:
|
| 52 |
-
print("❌ Failed to reach
|
| 53 |
response.raise_for_status()
|
| 54 |
return response
|
| 55 |
|
|
|
|
| 40 |
|
| 41 |
|
| 42 |
def http_get(path: str, domain: str, token: str = None, params: dict = None) -> requests.Response:
|
| 43 |
+
"""HTTP POST request to `path`, raises UnreachableAPIError if the API cannot be reached"""
|
| 44 |
try:
|
| 45 |
response = requests.get(
|
| 46 |
url=domain + path,
|
|
|
|
| 49 |
params=params,
|
| 50 |
)
|
| 51 |
except requests.exceptions.ConnectionError:
|
| 52 |
+
print(f"❌ Failed to reach {path}, check your internet connection")
|
| 53 |
response.raise_for_status()
|
| 54 |
return response
|
| 55 |
|