| import evaluate | |
| import gradio as gr | |
| module = evaluate.load("Bekhouche/NED") | |
| def compute_ned(dataframe): | |
| predictions = dataframe['Predictions'].tolist() | |
| references = dataframe['References'].tolist() | |
| if len(predictions) != len(references): | |
| return "Error: Number of predictions and references must match!" | |
| module.add_batch(predictions=predictions, references=references) | |
| result = module.compute() | |
| return result | |
| def custom_launch_gradio_widget(module): | |
| metric_info = module._info() | |
| with gr.Blocks() as demo: | |
| gr.Markdown(f"### {metric_info.description}") | |
| gr.Markdown(f"**Citation:** {metric_info.citation}") | |
| gr.Markdown(f"**Inputs Description:** {metric_info.inputs_description}") | |
| input_data = gr.Dataframe( | |
| headers=["Predictions", "References"], | |
| row_count=1, | |
| label="Input Predictions and References" | |
| ) | |
| run_button = gr.Button("Run NED") | |
| output = gr.Textbox(label="NED Score") | |
| run_button.click( | |
| compute_ned, | |
| inputs=input_data, | |
| outputs=output, | |
| ) | |
| demo.launch() | |
| custom_launch_gradio_widget(module) | |