Spaces:
Running
Running
File size: 1,252 Bytes
a85bc9a 478308a a85bc9a 478308a a85bc9a 478308a |
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 |
import gradio as gr
import pymarc
from marcai.process import process
from marcai.utils.parsing import record_dict
import pandas as pd
from marcai.predict import predict_onnx
from marcai.utils import load_config
import os
demo_dir = os.path.dirname(os.path.realpath(__file__))
def compare(file1, file2):
record1 = pymarc.parse_xml_to_array(file1)[0]
record2 = pymarc.parse_xml_to_array(file2)[0]
df1 = pd.DataFrame.from_dict([record_dict(record1)])
df2 = pd.DataFrame.from_dict([record_dict(record2)])
df = process(df1, df2)
# Load model config
config = load_config(os.path.join(demo_dir, "config.yaml"))
model_onnx = os.path.join(demo_dir, "model.onnx")
# Run ONNX model
input_df = df[config["model"]["features"]]
prediction = predict_onnx(model_onnx, input_df)
prediction = prediction.item()
return {"match": prediction, "not match": 1 - prediction}
interface = gr.Interface(
fn=compare,
inputs=[
gr.File(label="MARC XML File 1"),
gr.File(label="MARC XML File 2")
],
outputs=gr.Label(label="Classification"),
title="MARC Record Matcher",
description="Upload two MARC XML files with one record each.",
allow_flagging="never"
)
interface.launch()
|