kvi-detector / app.py
Kvikontent's picture
Update app.py
7210138 verified
raw
history blame
1.3 kB
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
import gradio as gr
import matplotlib.pyplot as plt
model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
def predict_fake_news(text):
input_text = text
input_ids = tokenizer.encode(input_text, return_tensors='pt', add_special_tokens=True)
input_ids = input_ids[:, :1024]
output = model.generate(input_ids, max_length=50, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id, attention_mask=input_ids)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
fake_confidence = 1 if "fake" in generated_text.lower() else 0
real_confidence = 1 - fake_confidence
fig, ax = plt.subplots()
ax.bar(["Real", "Fake"], [real_confidence, fake_confidence], color=['blue', 'red'])
plt.ylim(0, 1)
plt.xticks(rotation=45)
plt.title("Prediction Confidence")
return fig
input_text = gr.Textbox(lines=7, label="Paste the news article here", placeholder="Example: Scientists have discovered a new cure for cancer.")
output_graph = gr.Image(label="Prediction Confidence")
gr.Interface(predict_fake_news, inputs=input_text, outputs=output_graph, title="Real/Fake News Detector", theme="soft").launch()