Spaces:
Running
Running
| # π Masked Word Predictor | CPU-only HF Space | |
| import gradio as gr | |
| from transformers import pipeline | |
| # Load the fill-mask pipeline once at startup | |
| fill_mask = pipeline("fill-mask", model="distilroberta-base", device=-1) | |
| def predict_mask(sentence: str, top_k: int): | |
| if "[MASK]" not in sentence: | |
| return [{"sequence": "Error: include [MASK] in your sentence.", "score": 0.0}] | |
| preds = fill_mask(sentence, top_k=top_k) | |
| return [ | |
| {"sequence": p["sequence"], "score": round(p["score"], 3)} | |
| for p in preds | |
| ] | |
| with gr.Blocks(title="π Masked Word Predictor") as demo: | |
| gr.Markdown( | |
| "# π Masked Word Predictor\n" | |
| "Enter a sentence with one `[MASK]` token and see the modelβs top predictions." | |
| ) | |
| with gr.Row(): | |
| sentence = gr.Textbox( | |
| lines=2, | |
| placeholder="The capital of France is [MASK].", | |
| label="Input Sentence" | |
| ) | |
| top_k = gr.Slider( | |
| minimum=1, maximum=10, step=1, value=5, | |
| label="Top K Predictions" | |
| ) | |
| predict_btn = gr.Button("Predict", variant="primary") | |
| results = gr.Dataframe( | |
| headers=["sequence", "score"], | |
| datatype=["str", "number"], | |
| wrap=True, | |
| interactive=False, | |
| label="Predictions" | |
| ) | |
| predict_btn.click( | |
| predict_mask, | |
| inputs=[sentence, top_k], | |
| outputs=results | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(server_name="0.0.0.0") | |