akashjayampu commited on
Commit
18eda99
Β·
verified Β·
1 Parent(s): 5c8a8ef

Update src/mistral_llm.py

Browse files
Files changed (1) hide show
  1. src/mistral_llm.py +37 -21
src/mistral_llm.py CHANGED
@@ -1,28 +1,33 @@
 
1
  from transformers import pipeline
2
 
3
- # βœ… Light Summarizer β€” Fast even on CPU
4
- summarizer = pipeline(
5
- "summarization",
6
- model="sshleifer/distilbart-cnn-12-6",
7
- tokenizer="sshleifer/distilbart-cnn-12-6"
8
- )
 
9
 
10
- # βœ… Sentiment Analyzer β€” Fast
11
- sentiment_pipe = pipeline(
12
- "sentiment-analysis",
13
- model="distilbert-base-uncased-finetuned-sst-2-english"
14
- )
 
15
 
16
- # πŸ” Fake news detection (rule-based)
17
- def detect_fake_news(texts):
18
- fake_scores = []
19
- keywords = ["clickbait", "unverified", "hoax", "rumor", "scam", "misleading"]
20
- for text in texts:
21
- score = sum(1 for k in keywords if k in text.lower())
22
- fake_scores.append(f"{score}/6")
23
- return fake_scores
 
 
 
24
 
25
- # ✍️ Summarize list of texts
26
  def summarize_texts(texts):
27
  summaries = []
28
  for text in texts:
@@ -33,7 +38,6 @@ def summarize_texts(texts):
33
  summaries.append("⚠️ Summary failed")
34
  return summaries
35
 
36
- # πŸ“Š Analyze sentiment
37
  def analyze_sentiment(texts):
38
  results = []
39
  for text in texts:
@@ -43,3 +47,15 @@ def analyze_sentiment(texts):
43
  except Exception:
44
  results.append("Unknown")
45
  return results
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
  from transformers import pipeline
3
 
4
+ @st.cache_resource
5
+ def load_summarizer():
6
+ return pipeline(
7
+ "summarization",
8
+ model="sshleifer/distilbart-cnn-12-6",
9
+ tokenizer="sshleifer/distilbart-cnn-12-6"
10
+ )
11
 
12
+ @st.cache_resource
13
+ def load_sentiment():
14
+ return pipeline(
15
+ "sentiment-analysis",
16
+ model="distilbert-base-uncased-finetuned-sst-2-english"
17
+ )
18
 
19
+ @st.cache_resource
20
+ def load_fake_news_detector():
21
+ return pipeline(
22
+ "text-classification",
23
+ model="mrm8488/bert-tiny-finetuned-fake-news-detection",
24
+ tokenizer="mrm8488/bert-tiny-finetuned-fake-news-detection"
25
+ )
26
+
27
+ summarizer = load_summarizer()
28
+ sentiment_pipe = load_sentiment()
29
+ fake_news_pipe = load_fake_news_detector()
30
 
 
31
  def summarize_texts(texts):
32
  summaries = []
33
  for text in texts:
 
38
  summaries.append("⚠️ Summary failed")
39
  return summaries
40
 
 
41
  def analyze_sentiment(texts):
42
  results = []
43
  for text in texts:
 
47
  except Exception:
48
  results.append("Unknown")
49
  return results
50
+
51
+ def detect_fake_news(texts):
52
+ results = []
53
+ for text in texts:
54
+ try:
55
+ prediction = fake_news_pipe(text[:512])[0]
56
+ label = prediction["label"]
57
+ score = prediction["score"]
58
+ results.append(f"{label} ({score:.2f})")
59
+ except Exception:
60
+ results.append("Unknown")
61
+ return results