import gradio as gr import torch import torch.nn.functional as F from transformers import AutoTokenizer, AutoModelForTokenClassification MODEL_ID = "techysanoj/fine-tuned-IndicNER" tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) model = AutoModelForTokenClassification.from_pretrained(MODEL_ID) id2label = {int(k): v for k, v in model.config.id2label.items()} # Color map for Gradio HTML output COLOR_MAP = { "B-PER": "red", "I-PER": "red", "B-ORG": "green", "I-ORG": "green", "B-LOC": "blue", "I-LOC": "blue", "O": "black" } def generate_ner_output(text): if not text.strip(): return "Please enter valid input." inputs = tokenizer(text, return_tensors="pt") token_ids = inputs["input_ids"][0] tokens = tokenizer.convert_ids_to_tokens(token_ids) with torch.no_grad(): logits = model(**inputs).logits # Softmax for confidence probs = F.softmax(logits, dim=-1)[0] pred_ids = torch.argmax(probs, dim=-1).tolist() html_output = "