Spaces:
Sleeping
Sleeping
File size: 1,998 Bytes
0b0e7aa e5ba913 0b0e7aa 2488f8b c5503a4 0b0e7aa 2488f8b e5ba913 2488f8b 0b0e7aa 2488f8b b660ba8 01ab558 b660ba8 01ab558 b660ba8 728d57c b660ba8 edd642a b660ba8 728d57c b660ba8 2488f8b 01ab558 3a45cce 2488f8b 0b0e7aa 2488f8b 0b0e7aa 2488f8b b660ba8 01ab558 28f951d b660ba8 2488f8b |
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 |
import sys
import gradio as gr
import pandas as pd
import evaluate
from evaluate.utils import infer_gradio_input_types, json_to_string_type, parse_readme, parse_test_cases
# from evaluate.utils import launch_gradio_widget # using this directly is erroneous - lets fix this
from fixed_f1 import FixedF1
from pathlib import Path
metric = FixedF1()
if isinstance(metric.features, list):
(feature_names, feature_types) = zip(*metric.features[0].items())
else:
(feature_names, feature_types) = zip(*metric.features.items())
gradio_input_types = infer_gradio_input_types(feature_types)
local_path = Path(sys.path[0])
test_cases = [ {"predictions":[1,2,3,4,5], "references":[1,2,5,4,3]} ] # configure this randomly using randint generator and feature names?
# configure this based on the input type, etc. for launch_gradio_widget
def compute(input_df: pd.DataFrame):
cols = [col for col in input_df.columns]
predicted = [int(num) for num in input_df[cols[0]].to_list()]
references = [int(num) for num in input_df[cols[1]].to_list()]
metric.add_batch(predictions=predicted, references=references)
outputs = metric.compute()
f"Your metrics are as follows: \n {outputs}"
space = gr.Interface(
fn=compute,
inputs=gr.Dataframe(
headers=feature_names,
col_count=len(feature_names),
row_count=5,
datatype=json_to_string_type(gradio_input_types),
),
outputs=gr.Textbox(label=metric.name),
description=(
metric.info.description + "\nIf this is a text-based metric, make sure to wrap your input in double quotes."
" Alternatively you can use a JSON-formatted list as input."
),
title=f"Metric: {metric.name}",
article=parse_readme(local_path / "README.md"),
# TODO: load test cases and use them to populate examples
examples=[
# correct depth?
parse_test_cases(test_cases, feature_names, gradio_input_types)
],
cache_examples=False
)
space.launch() |