import gradio as gr from qasrl_model_pipeline import QASRL_Pipeline model = "kleinay/qanom-seq2seq-model-baseline" pipeline = QASRL_Pipeline(model) description = f"""This is a demo of the '{model}' model, which fine-tuned a Seq2Seq pretrained model on the QANom task""" title="QANom Parser Demo" examples = [["The doctor was interested in Luke 's treatment .", True, "treat"], ["The Veterinary student was interested in Luke 's treatment of sea animals .", True, "treat"]] input_sent_box_label = "Insert sentence here. Mark the predicate by adding the token '

' before it." links = """

QASRL Website Model Repo at Huggingface Hub |

""" def call(sentence, is_nominal, verb_form): predicate_marker="

" if predicate_marker not in sentence: raise ValueError("You must highlight one word of the sentence as a predicate using preceeding '

'.") if not verb_form: if is_nominal: raise ValueError("You should provide the verbal form of the nominalization") toks = sentence.split(" ") pred_idx = toks.index(predicate_marker) predicate = toks(pred_idx+1) verb_form=predicate return pipeline(sentence, predicate_marker=predicate_marker, predicate_type="nominal" if is_nominal else "verbal", verb_form=verb_form) iface = gr.Interface(fn=call, inputs=[gr.inputs.Textbox(placeholder=input_sent_box_label, label="Sentence", lines=4), gr.inputs.Checkbox(default=True, label="Is Nominalization?"), gr.inputs.Textbox(label="verbal form of nominalization", default='')], outputs=gr.outputs.JSON(label="Model Output - QASRL"), title=title, description=description, article=links, examples=examples ) iface.launch()