Spaces:
Running
Running
import gradio as gr | |
from typing import Union, Dict, Any, List | |
# Sample pre-calculated entities | |
sample_text = ( | |
"Recent studies on ocean currents from the Global Ocean Temperature Dataset " | |
"(GOTD) indicate significant shifts in marine biodiversity." | |
) | |
sample_entities = [ | |
{"label": "named dataset", "text": "Global Ocean Temperature Dataset", "start": 29, "end": 62, "score": 0.99}, | |
{"label": "acronym", "text": "GOTD", "start": 64, "end": 68, "score": 0.98}, | |
] | |
rels = [ | |
'acronym', 'author', 'data description', | |
'data geography', 'data source', 'data type', | |
'publication year', 'publisher', 'reference year', 'version' | |
] | |
MODELS = ["demo-model-1", "demo-model-2"] | |
# Annotate_query simulation | |
def annotate_query( | |
query: str, | |
labels: Union[str, List[str]], | |
threshold: float = 0.3, | |
nested_ner: bool = False, | |
model_name: str = None | |
) -> Dict[str, Any]: | |
# In a real app, you'd call parse_query/inference_pipeline here. | |
# For simulation, reuse sample_entities. | |
return { | |
"text": query, | |
"entities": [ | |
{"start": ent["start"], "end": ent["end"], "label": ent["label"]} | |
for ent in sample_entities | |
] | |
} | |
# Build Gradio UI | |
demo = gr.Blocks() | |
with demo: | |
gr.Markdown( | |
""" | |
## Step: Annotate Query Simulation | |
Enter text (prepopulated) and click **Annotate** to see how entities are highlighted. | |
""" | |
) | |
# Inputs | |
query = gr.Textbox(lines=3, value=sample_text, label="Input Text") | |
entities = gr.Textbox(value=", ".join(rels), label="Relations (unused in simulation)") | |
threshold = gr.Slider(0, 1, value=0.3, step=0.01, label="Threshold") | |
nested = gr.Checkbox(value=False, label="Nested NER") | |
model = gr.Radio(choices=MODELS, value=MODELS[0], label="Model") | |
# Outputs | |
output_hl = gr.HighlightedText(label="Annotated Entities") | |
# Button | |
annotate_btn = gr.Button("Annotate") | |
annotate_btn.click( | |
fn=annotate_query, | |
inputs=[query, entities, threshold, nested, model], | |
outputs=[output_hl] | |
) | |
demo.launch(debug=True) | |