Spaces:
Runtime error
Runtime error
| from typing import Dict, Union | |
| from gliner import GLiNER | |
| import gradio as gr | |
| model = GLiNER.from_pretrained("kzuri/gliner-bio-finetuned") | |
| examples = [ | |
| [ | |
| "After months of pain, she was finally diagnosed with deep infiltrating endometriosis (DIE).", | |
| "DISEASE_DISORDER", | |
| 0.5, | |
| True, | |
| ], | |
| ] | |
| def ner( | |
| text, labels: str, threshold: float, nested_ner: bool | |
| ) -> Dict[str, Union[str, int, float]]: | |
| labels = labels.split(",") | |
| return { | |
| "text": text, | |
| "entities": [ | |
| { | |
| "entity": entity["label"], | |
| "word": entity["text"], | |
| "start": entity["start"], | |
| "end": entity["end"], | |
| "score": 0, | |
| } | |
| for entity in model.predict_entities( | |
| text, labels, flat_ner=not nested_ner, threshold=threshold | |
| ) | |
| ], | |
| } | |
| with gr.Blocks(title="GLiNER-medium-v2.1") as demo: | |
| gr.Markdown( | |
| """ | |
| # GLiNER bio finetuned model | |
| Devarsh Patel's assignment submission for Full Stack Developer at Healthy Vignettes. | |
| Email me at: [email protected] | |
| """ | |
| ) | |
| input_text = gr.Textbox( | |
| value=examples[0][0], label="Text input", placeholder="Enter your text here" | |
| ) | |
| with gr.Row() as row: | |
| labels = gr.Textbox( | |
| value=examples[0][1], | |
| label="Labels", | |
| placeholder="Enter your labels here (comma separated)", | |
| scale=2, | |
| ) | |
| threshold = gr.Slider( | |
| 0, | |
| 1, | |
| value=0.3, | |
| step=0.01, | |
| label="Threshold", | |
| info="Lower the threshold to increase how many entities get predicted.", | |
| scale=1, | |
| ) | |
| nested_ner = gr.Checkbox( | |
| value=examples[0][2], | |
| label="Nested NER", | |
| info="Allow for nested NER?", | |
| scale=0, | |
| ) | |
| output = gr.HighlightedText(label="Predicted Entities") | |
| submit_btn = gr.Button("Submit") | |
| examples = gr.Examples( | |
| examples, | |
| fn=ner, | |
| inputs=[input_text, labels, threshold, nested_ner], | |
| outputs=output, | |
| cache_examples=True, | |
| ) | |
| # Submitting | |
| input_text.submit( | |
| fn=ner, inputs=[input_text, labels, threshold, nested_ner], outputs=output | |
| ) | |
| labels.submit( | |
| fn=ner, inputs=[input_text, labels, threshold, nested_ner], outputs=output | |
| ) | |
| threshold.release( | |
| fn=ner, inputs=[input_text, labels, threshold, nested_ner], outputs=output | |
| ) | |
| submit_btn.click( | |
| fn=ner, inputs=[input_text, labels, threshold, nested_ner], outputs=output | |
| ) | |
| nested_ner.change( | |
| fn=ner, inputs=[input_text, labels, threshold, nested_ner], outputs=output | |
| ) | |
| demo.queue() | |
| demo.launch(debug=True) | |