levenshtein / app.py
Natooz's picture
Upload 5 files
814113b verified
"""Application file."""
from pathlib import Path
import evaluate
import gradio as gr
module = evaluate.load("Natooz/levenshtein")
# Code taken and adapted from: https://github.com/huggingface/evaluate/blob/main/src/evaluate/utils/gradio.py
local_path = Path(__file__).parent
# if there are several input types, use first as default.
if isinstance(module.features, list):
(feature_names, feature_types) = zip(*module.features[0].items())
else:
(feature_names, feature_types) = zip(*module.features.items())
gradio_input_types = evaluate.utils.infer_gradio_input_types(feature_types)
def compute(data):
return module.compute(**evaluate.utils.parse_gradio_data(data, gradio_input_types))
gradio_app = gr.Interface(
fn=compute,
inputs=gr.Dataframe(
headers=feature_names,
col_count=len(feature_names),
row_count=1,
datatype=evaluate.utils.json_to_string_type(gradio_input_types),
),
outputs=gr.Textbox(label=module.name),
description=module.info.description,
title=f"Metric: {module.name}",
article=evaluate.utils.parse_readme(local_path / "README.md"),
)
if __name__ == "__main__":
gradio_app.launch()