rafaldembski commited on
Commit
88917dc
1 Parent(s): e4a3cef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -10
app.py CHANGED
@@ -37,14 +37,37 @@ def simple_checks(message):
37
  warnings.append("Wiadomość zawiera prośbę o poufne informacje.")
38
  return warnings
39
 
40
- # Funkcja do analizy wiadomości za pomocą API SambaNova
41
  def analyze_message(message, phone_number):
42
  url = "https://api.sambanova.ai/v1/chat/completions"
43
  headers = {
44
  "Authorization": f"Bearer {API_KEY}"
45
  }
46
- system_prompt = "Jesteś asystentem pomagającym w identyfikacji fałszywych wiadomości SMS. Analizuj pod kątem typowych cech oszustw i phishingu. Podaj swoją ocenę oraz zalecenia dla użytkownika."
47
- user_prompt = f"Przeanalizuj następującą wiadomość pod kątem potencjalnego oszustwa:\n\nWiadomość: {message}\nNumer telefonu: {phone_number}\n\nPodaj swoją analizę i wnioski po polsku."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  payload = {
50
  "model": "Meta-Llama-3.1-8B-Instruct",
@@ -61,10 +84,19 @@ def analyze_message(message, phone_number):
61
  response = requests.post(url, headers=headers, json=payload)
62
  if response.status_code == 200:
63
  data = response.json()
64
- analysis = data['choices'][0]['message']['content']
65
- return analysis
 
 
 
 
 
 
 
 
 
66
  else:
67
- return f"Błąd API: {response.status_code} - {response.text}"
68
 
69
  # Główny interfejs aplikacji
70
  def main():
@@ -100,11 +132,15 @@ def main():
100
 
101
  # Analiza za pomocą modelu językowego
102
  with st.spinner("Analizuję wiadomość przy użyciu modelu AI..."):
103
- analysis = analyze_message(message, phone_number)
104
- st.subheader("Wynik analizy AI:")
105
- st.write(analysis)
 
 
 
 
106
 
107
- st.info("Pamiętaj: zawsze zachowuj ostrożność przy otrzymywaniu wiadomości od nieznanych nadawców. Nie udostępniaj poufnych informacji i nie klikaj w podejrzane linki.")
108
 
109
  if __name__ == "__main__":
110
  main()
 
37
  warnings.append("Wiadomość zawiera prośbę o poufne informacje.")
38
  return warnings
39
 
40
+ # Funkcja do analizy wiadomości za pomocą API SambaNova z głębszym procesem myślenia
41
  def analyze_message(message, phone_number):
42
  url = "https://api.sambanova.ai/v1/chat/completions"
43
  headers = {
44
  "Authorization": f"Bearer {API_KEY}"
45
  }
46
+ # Rozbudowany system prompt z głębszym procesem myślenia
47
+ system_prompt = """
48
+ Jesteś asystentem AI specjalizującym się w identyfikacji fałszywych wiadomości SMS. Twoim zadaniem jest przeprowadzenie szczegółowej analizy wiadomości, wykorzystując głęboki proces myślenia i rozbijając swoją odpowiedź na następujące sekcje:
49
+
50
+ <analysis>
51
+ [Przeprowadź szczegółową analizę treści wiadomości, identyfikując potencjalne czerwone flagi, takie jak błędy językowe, prośby o dane osobowe, pilne prośby o kontakt itp.]
52
+ </analysis>
53
+
54
+ <risk_assessment>
55
+ [Na podstawie analizy treści i wszelkich dostępnych informacji oceń prawdopodobieństwo, że wiadomość jest oszustwem.]
56
+ </risk_assessment>
57
+
58
+ <recommendations>
59
+ [Podaj jasne i konkretne zalecenia dotyczące dalszych kroków, które użytkownik powinien podjąć.]
60
+ </recommendations>
61
+
62
+ Twoja odpowiedź powinna być sformatowana dokładnie w powyższy sposób, używając znaczników <analysis>, <risk_assessment> i <recommendations>.
63
+ """
64
+
65
+ user_prompt = f"""Przeanalizuj następującą wiadomość pod kątem potencjalnego oszustwa:
66
+
67
+ Wiadomość: "{message}"
68
+ Numer telefonu nadawcy: {phone_number}
69
+
70
+ Podaj swoją analizę i wnioski zgodnie z powyższymi wytycznymi."""
71
 
72
  payload = {
73
  "model": "Meta-Llama-3.1-8B-Instruct",
 
84
  response = requests.post(url, headers=headers, json=payload)
85
  if response.status_code == 200:
86
  data = response.json()
87
+ ai_response = data['choices'][0]['message']['content']
88
+ # Parsowanie odpowiedzi
89
+ analysis = re.search(r'<analysis>(.*?)</analysis>', ai_response, re.DOTALL)
90
+ risk_assessment = re.search(r'<risk_assessment>(.*?)</risk_assessment>', ai_response, re.DOTALL)
91
+ recommendations = re.search(r'<recommendations>(.*?)</recommendations>', ai_response, re.DOTALL)
92
+
93
+ analysis_text = analysis.group(1).strip() if analysis else "Brak analizy."
94
+ risk_text = risk_assessment.group(1).strip() if risk_assessment else "Brak oceny ryzyka."
95
+ recommendations_text = recommendations.group(1).strip() if recommendations else "Brak zaleceń."
96
+
97
+ return analysis_text, risk_text, recommendations_text
98
  else:
99
+ return f"Błąd API: {response.status_code} - {response.text}", "", ""
100
 
101
  # Główny interfejs aplikacji
102
  def main():
 
132
 
133
  # Analiza za pomocą modelu językowego
134
  with st.spinner("Analizuję wiadomość przy użyciu modelu AI..."):
135
+ analysis_text, risk_text, recommendations_text = analyze_message(message, phone_number)
136
+ st.subheader("📑 Analiza treści wiadomości:")
137
+ st.markdown(analysis_text)
138
+ st.subheader("⚠️ Ocena ryzyka oszustwa:")
139
+ st.markdown(risk_text)
140
+ st.subheader("✅ Zalecenia dla użytkownika:")
141
+ st.markdown(recommendations_text)
142
 
143
+ st.info("📌 Pamiętaj: zawsze zachowuj ostrożność przy otrzymywaniu wiadomości od nieznanych nadawców. Nie udostępniaj poufnych informacji i nie klikaj w podejrzane linki.")
144
 
145
  if __name__ == "__main__":
146
  main()