Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| MODEL_NAME = "PushkarKumar/veritas_ai_new" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) | |
| model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME) | |
| model.eval() | |
| id2label = {0: "REAL", 1: "FAKE"} | |
| def predict_article(text): | |
| text = (text or "").strip() | |
| if not text: | |
| return ( | |
| "No input provided.", | |
| {"REAL": 0.0, "FAKE": 0.0}, | |
| "Paste a news article or headline + body text." | |
| ) | |
| inputs = tokenizer( | |
| text, | |
| padding="max_length", | |
| truncation=True, | |
| max_length=1024, | |
| return_tensors="pt", | |
| ) | |
| global_attention_mask = torch.zeros_like(inputs["input_ids"]) | |
| global_attention_mask[:, 0] = 1 | |
| inputs["global_attention_mask"] = global_attention_mask | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| probs = torch.softmax(outputs.logits, dim=1)[0] | |
| real_score = float(probs[0]) | |
| fake_score = float(probs[1]) | |
| pred_id = int(torch.argmax(probs).item()) | |
| pred_label = id2label[pred_id] | |
| details = ( | |
| f"Prediction: {pred_label}\n" | |
| f"REAL confidence: {real_score:.4f}\n" | |
| f"FAKE confidence: {fake_score:.4f}\n\n" | |
| "This is a research demo. It is not a substitute for factual verification." | |
| ) | |
| return pred_label, {"REAL": real_score, "FAKE": fake_score}, details | |
| demo = gr.Interface( | |
| fn=predict_article, | |
| inputs=gr.Textbox( | |
| lines=16, | |
| label="Article text", | |
| placeholder="Paste a news article, or a headline plus body text..." | |
| ), | |
| outputs=[ | |
| gr.Textbox(label="Prediction"), | |
| gr.Label(label="Confidence"), | |
| gr.Textbox(label="Details", lines=8), | |
| ], | |
| title="Veritas AI Demo", | |
| description="Interactive inference demo for PushkarKumar/veritas_ai_new.", | |
| examples=[ | |
| ["Headline: Example headline\n\nBody: Example article body text goes here."] | |
| ], | |
| flagging_mode="never", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |