BrandSight / src /mistral_llm.py
akashjayampu's picture
Update src/mistral_llm.py
18eda99 verified
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