Spaces:
Sleeping
Sleeping
rafaldembski
commited on
Commit
•
88917dc
1
Parent(s):
e4a3cef
Update app.py
Browse files
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 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
104 |
-
st.subheader("
|
105 |
-
st.
|
|
|
|
|
|
|
|
|
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()
|