import streamlit as st from transformers import pipeline @st.cache_resource def load_summarizer(): return pipeline( "summarization", model="sshleifer/distilbart-cnn-12-6", tokenizer="sshleifer/distilbart-cnn-12-6" ) @st.cache_resource def load_sentiment(): return pipeline( "sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english" ) @st.cache_resource def load_fake_news_detector(): return pipeline( "text-classification", model="mrm8488/bert-tiny-finetuned-fake-news-detection", tokenizer="mrm8488/bert-tiny-finetuned-fake-news-detection" ) summarizer = load_summarizer() sentiment_pipe = load_sentiment() fake_news_pipe = load_fake_news_detector() def summarize_texts(texts): summaries = [] for text in texts: try: result = summarizer(text, max_length=60, min_length=15, do_sample=False) summaries.append(result[0]["summary_text"]) except Exception: summaries.append("⚠️ Summary failed") return summaries def analyze_sentiment(texts): results = [] for text in texts: try: res = sentiment_pipe(text[:512])[0]["label"] results.append(res) except Exception: results.append("Unknown") return results def detect_fake_news(texts): results = [] for text in texts: try: prediction = fake_news_pipe(text[:512])[0] label = prediction["label"] score = prediction["score"] results.append(f"{label} ({score:.2f})") except Exception: results.append("Unknown") return results