Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| import torch # For device handling | |
| # Load a pre-trained fake news detection model | |
| classifier = pipeline("text-classification", model="mrm8488/bert-tiny-finetuned-fake-news-detection", device=0 if torch.cuda.is_available() else -1) | |
| def detect_misinfo(text): | |
| # Run inference on the input text | |
| result = classifier(text)[0] | |
| label = result['label'] # 'FAKE' or 'REAL' | |
| score = result['score'] # Confidence 0-1 | |
| # Convert to trust score (0-100) | |
| trust_score = int(score * 100) if label == 'REAL' else int((1 - score) * 100) | |
| # Add a simple explanation | |
| explanation = f"Label: {label}. Confidence: {score:.2f}. Trust Score: {trust_score}/100. (Higher = more credible)" | |
| return trust_score, explanation | |
| def submit_feedback(text, score, feedback): | |
| # For now, just return a thank you (later, log to a dataset) | |
| return f"Thanks for feedback on '{text[:50]}...'. Score was {score}. We'll use this to improve!" | |
| # Create the Gradio interface | |
| with gr.Blocks(title="TruthForge MVP") as demo: | |
| gr.Markdown("# TruthForge MVP: AI Misinfo Detector") | |
| gr.Markdown("Paste a claim or article text. Get a trust score. Help verify!") | |
| with gr.Row(): | |
| input_text = gr.Textbox(label="Enter Text to Check", placeholder="e.g., 'The moon landing was faked.'", lines=5) | |
| check_button = gr.Button("Scan for Trust") | |
| with gr.Row(): | |
| output_score = gr.Number(label="Trust Score (0-100)") | |
| output_explain = gr.Textbox(label="Explanation") | |
| check_button.click(fn=detect_misinfo, inputs=input_text, outputs=[output_score, output_explain]) | |
| gr.Markdown("## Community Feedback (Help Build the Network)") | |
| feedback_text = gr.Textbox(label="Your Verification Notes", placeholder="e.g., 'This is false because source X says Y.'") | |
| feedback_button = gr.Button("Submit Feedback") | |
| feedback_output = gr.Textbox(label="Response") | |
| feedback_button.click(fn=submit_feedback, inputs=[input_text, output_score, feedback_text], outputs=feedback_output) | |
| demo.launch() |