Spaces:
Sleeping
Sleeping
rafaldembski
commited on
Update pages/Analysis.py
Browse files- pages/Analysis.py +59 -43
pages/Analysis.py
CHANGED
@@ -2,12 +2,13 @@
|
|
2 |
|
3 |
import streamlit as st
|
4 |
from utils.functions import (
|
5 |
-
get_phone_info,
|
6 |
-
simple_checks,
|
7 |
-
analyze_message,
|
8 |
-
update_stats,
|
9 |
-
add_to_history,
|
10 |
-
is_fake_number
|
|
|
11 |
)
|
12 |
import os
|
13 |
import re
|
@@ -35,7 +36,17 @@ def show_analysis(language):
|
|
35 |
'confidence_level_help': "1: Bardzo mało pewny, 5: Bardzo pewny",
|
36 |
'unexpected_label': "Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?",
|
37 |
'unexpected_options': ('Tak', 'Nie'),
|
38 |
-
'additional_notes_label': "Dodatkowe uwagi lub informacje (opcjonalnie)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
},
|
40 |
'German': {
|
41 |
'header': "📊 SMS-Analyse",
|
@@ -56,7 +67,17 @@ def show_analysis(language):
|
|
56 |
'confidence_level_help': "1: Sehr unsicher, 5: Sehr sicher",
|
57 |
'unexpected_label': "War der Empfang dieser Nachricht für Sie unerwartet?",
|
58 |
'unexpected_options': ('Ja', 'Nein'),
|
59 |
-
'additional_notes_label': "Zusätzliche Bemerkungen oder Informationen (optional)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
},
|
61 |
'English': {
|
62 |
'header': "📊 SMS Analysis",
|
@@ -77,7 +98,17 @@ def show_analysis(language):
|
|
77 |
'confidence_level_help': "1: Very unsure, 5: Very confident",
|
78 |
'unexpected_label': "Was receiving this message unexpected for you?",
|
79 |
'unexpected_options': ('Yes', 'No'),
|
80 |
-
'additional_notes_label': "Additional notes or information (optional)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
}
|
83 |
|
@@ -88,14 +119,14 @@ def show_analysis(language):
|
|
88 |
|
89 |
with st.form("sms_form"):
|
90 |
message = st.text_area(
|
91 |
-
label=translations['
|
92 |
placeholder=translations['input_placeholder'],
|
93 |
height=150
|
94 |
)
|
95 |
phone_number = st.text_input(
|
96 |
label=translations['phone_input_label'],
|
97 |
value="",
|
98 |
-
max_chars=20
|
99 |
)
|
100 |
|
101 |
st.markdown(f"### {translations['additional_info_header']}")
|
@@ -136,11 +167,11 @@ def show_analysis(language):
|
|
136 |
# Informacje o numerze telefonu
|
137 |
country, operator = get_phone_info(phone_number)
|
138 |
if country and operator:
|
139 |
-
st.
|
140 |
-
st.write(f"- **
|
141 |
-
st.write(f"- **
|
142 |
else:
|
143 |
-
st.write(
|
144 |
|
145 |
# Sprawdzenie, czy numer jest w bazie fałszywych numerów
|
146 |
if is_fake_number(phone_number):
|
@@ -151,41 +182,26 @@ def show_analysis(language):
|
|
151 |
fraud_detected = False
|
152 |
|
153 |
# Przeprowadź proste sprawdzenia heurystyczne
|
154 |
-
warnings = simple_checks(message, language)
|
155 |
if warnings:
|
156 |
-
|
157 |
-
st.warning("Znaleziono następujące potencjalne czerwone flagi:")
|
158 |
-
elif language == 'German':
|
159 |
-
st.warning("Folgende potenzielle rote Flaggen wurden gefunden:")
|
160 |
-
else:
|
161 |
-
st.warning("The following potential red flags were found:")
|
162 |
for warn in warnings:
|
163 |
st.write(f"- {warn}")
|
164 |
|
165 |
# Zbierz dodatkowe informacje
|
166 |
additional_info = f"""
|
167 |
-
**{
|
168 |
-
'Wie oft erhalten Sie Nachrichten von dieser Nummer?' if language == 'German' else
|
169 |
-
'How often do you receive messages from this number?' }** {frequency}
|
170 |
|
171 |
-
**{
|
172 |
-
'Wann haben Sie zuletzt eine ähnliche Nachricht erhalten?' if language == 'German' else
|
173 |
-
'When did you last receive a similar message?' }** {last_received}
|
174 |
|
175 |
-
**{
|
176 |
-
'Wie sicher sind Sie, dass die Nachricht authentisch ist?' if language == 'German' else
|
177 |
-
'How confident are you that the message is authentic?' }** {confidence_level}/5
|
178 |
|
179 |
-
**{
|
180 |
-
'War der Empfang dieser Nachricht für Sie unerwartet?' if language == 'German' else
|
181 |
-
'Was receiving this message unexpected for you?' }** {unexpected}
|
182 |
|
183 |
-
**{
|
184 |
-
'Zusätzliche Bemerkungen oder Informationen:' if language == 'German' else
|
185 |
-
'Additional notes or information:' }** {additional_notes}
|
186 |
"""
|
187 |
|
188 |
-
# Pobierz klucz API z
|
189 |
api_key = os.getenv('SAMBANOVA_API_KEY')
|
190 |
if not api_key:
|
191 |
st.error("API key is missing. Please set the SAMBANOVA_API_KEY environment variable.")
|
@@ -212,7 +228,7 @@ def show_analysis(language):
|
|
212 |
# Dodanie analizy do historii
|
213 |
add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
|
214 |
|
215 |
-
st.info(
|
216 |
|
217 |
# Zgłoszenie numeru jako oszustwo
|
218 |
if fraud_detected:
|
@@ -222,11 +238,11 @@ def show_analysis(language):
|
|
222 |
if is_valid_number(parsed_number):
|
223 |
success = add_fake_number(phone_number)
|
224 |
if success:
|
225 |
-
st.success(
|
226 |
else:
|
227 |
-
st.info(
|
228 |
else:
|
229 |
-
st.error(
|
230 |
except NumberParseException:
|
231 |
-
st.error(
|
232 |
|
|
|
2 |
|
3 |
import streamlit as st
|
4 |
from utils.functions import (
|
5 |
+
get_phone_info,
|
6 |
+
simple_checks,
|
7 |
+
analyze_message,
|
8 |
+
update_stats,
|
9 |
+
add_to_history,
|
10 |
+
is_fake_number,
|
11 |
+
add_fake_number # Upewnij się, że ta funkcja jest zaimplementowana
|
12 |
)
|
13 |
import os
|
14 |
import re
|
|
|
36 |
'confidence_level_help': "1: Bardzo mało pewny, 5: Bardzo pewny",
|
37 |
'unexpected_label': "Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?",
|
38 |
'unexpected_options': ('Tak', 'Nie'),
|
39 |
+
'additional_notes_label': "Dodatkowe uwagi lub informacje (opcjonalnie)",
|
40 |
+
'phone_info_header': "Informacje o numerze telefonu",
|
41 |
+
'country_label': "Kraj",
|
42 |
+
'operator_label': "Operator",
|
43 |
+
'unable_to_retrieve': "Nie można uzyskać informacji o numerze telefonu.",
|
44 |
+
'red_flags_found': "Znaleziono następujące potencjalne czerwone flagi:",
|
45 |
+
'remember_caution': "📌 Pamiętaj: Bądź ostrożny z wiadomościami od nieznanych nadawców.",
|
46 |
+
'number_reported': "Numer został zgłoszony jako oszustwo.",
|
47 |
+
'number_already_reported': "Numer został już wcześniej zgłoszony jako oszustwo.",
|
48 |
+
'invalid_number': "Podany numer telefonu jest nieprawidłowy.",
|
49 |
+
'failed_to_parse': "Nie udało się przetworzyć numeru telefonu. Upewnij się, że jest w poprawnym formacie."
|
50 |
},
|
51 |
'German': {
|
52 |
'header': "📊 SMS-Analyse",
|
|
|
67 |
'confidence_level_help': "1: Sehr unsicher, 5: Sehr sicher",
|
68 |
'unexpected_label': "War der Empfang dieser Nachricht für Sie unerwartet?",
|
69 |
'unexpected_options': ('Ja', 'Nein'),
|
70 |
+
'additional_notes_label': "Zusätzliche Bemerkungen oder Informationen (optional)",
|
71 |
+
'phone_info_header': "Informationen zur Telefonnummer",
|
72 |
+
'country_label': "Land",
|
73 |
+
'operator_label': "Anbieter",
|
74 |
+
'unable_to_retrieve': "Informationen zur Telefonnummer können nicht abgerufen werden.",
|
75 |
+
'red_flags_found': "Folgende potenzielle rote Flaggen wurden gefunden:",
|
76 |
+
'remember_caution': "📌 Denken Sie daran: Seien Sie vorsichtig mit Nachrichten von unbekannten Absendern.",
|
77 |
+
'number_reported': "Nummer wurde als Betrug gemeldet.",
|
78 |
+
'number_already_reported': "Nummer wurde bereits als Betrug gemeldet.",
|
79 |
+
'invalid_number': "Die angegebene Telefonnummer ist ungültig.",
|
80 |
+
'failed_to_parse': "Die Telefonnummer konnte nicht verarbeitet werden. Bitte stellen Sie sicher, dass sie im richtigen Format ist."
|
81 |
},
|
82 |
'English': {
|
83 |
'header': "📊 SMS Analysis",
|
|
|
98 |
'confidence_level_help': "1: Very unsure, 5: Very confident",
|
99 |
'unexpected_label': "Was receiving this message unexpected for you?",
|
100 |
'unexpected_options': ('Yes', 'No'),
|
101 |
+
'additional_notes_label': "Additional notes or information (optional)",
|
102 |
+
'phone_info_header': "Phone Number Information",
|
103 |
+
'country_label': "Country",
|
104 |
+
'operator_label': "Operator",
|
105 |
+
'unable_to_retrieve': "Unable to retrieve phone number information.",
|
106 |
+
'red_flags_found': "The following potential red flags were found:",
|
107 |
+
'remember_caution': "📌 Remember: Stay cautious with messages from unknown senders.",
|
108 |
+
'number_reported': "Number has been reported as fraud.",
|
109 |
+
'number_already_reported': "Number has already been reported as fraud.",
|
110 |
+
'invalid_number': "The provided phone number is invalid.",
|
111 |
+
'failed_to_parse': "Failed to parse the phone number. Please ensure it is in the correct format."
|
112 |
}
|
113 |
}
|
114 |
|
|
|
119 |
|
120 |
with st.form("sms_form"):
|
121 |
message = st.text_area(
|
122 |
+
label=translations['input_placeholder'],
|
123 |
placeholder=translations['input_placeholder'],
|
124 |
height=150
|
125 |
)
|
126 |
phone_number = st.text_input(
|
127 |
label=translations['phone_input_label'],
|
128 |
value="",
|
129 |
+
max_chars=20
|
130 |
)
|
131 |
|
132 |
st.markdown(f"### {translations['additional_info_header']}")
|
|
|
167 |
# Informacje o numerze telefonu
|
168 |
country, operator = get_phone_info(phone_number)
|
169 |
if country and operator:
|
170 |
+
st.subheader(translations['phone_info_header'])
|
171 |
+
st.write(f"- **{translations['country_label']}:** {country}")
|
172 |
+
st.write(f"- **{translations['operator_label']}:** {operator}")
|
173 |
else:
|
174 |
+
st.write(translations['unable_to_retrieve'])
|
175 |
|
176 |
# Sprawdzenie, czy numer jest w bazie fałszywych numerów
|
177 |
if is_fake_number(phone_number):
|
|
|
182 |
fraud_detected = False
|
183 |
|
184 |
# Przeprowadź proste sprawdzenia heurystyczne
|
185 |
+
warnings = simple_checks(message, language)
|
186 |
if warnings:
|
187 |
+
st.warning(translations['red_flags_found'])
|
|
|
|
|
|
|
|
|
|
|
188 |
for warn in warnings:
|
189 |
st.write(f"- {warn}")
|
190 |
|
191 |
# Zbierz dodatkowe informacje
|
192 |
additional_info = f"""
|
193 |
+
**{translations['frequency_label']}** {frequency}
|
|
|
|
|
194 |
|
195 |
+
**{translations['last_received_label']}** {last_received}
|
|
|
|
|
196 |
|
197 |
+
**{translations['confidence_level_label']}** {confidence_level}/5
|
|
|
|
|
198 |
|
199 |
+
**{translations['unexpected_label']}** {unexpected}
|
|
|
|
|
200 |
|
201 |
+
**{translations['additional_notes_label']}** {additional_notes}
|
|
|
|
|
202 |
"""
|
203 |
|
204 |
+
# Pobierz klucz API z zmiennych środowiskowych
|
205 |
api_key = os.getenv('SAMBANOVA_API_KEY')
|
206 |
if not api_key:
|
207 |
st.error("API key is missing. Please set the SAMBANOVA_API_KEY environment variable.")
|
|
|
228 |
# Dodanie analizy do historii
|
229 |
add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
|
230 |
|
231 |
+
st.info(translations['remember_caution'])
|
232 |
|
233 |
# Zgłoszenie numeru jako oszustwo
|
234 |
if fraud_detected:
|
|
|
238 |
if is_valid_number(parsed_number):
|
239 |
success = add_fake_number(phone_number)
|
240 |
if success:
|
241 |
+
st.success(translations['number_reported'])
|
242 |
else:
|
243 |
+
st.info(translations['number_already_reported'])
|
244 |
else:
|
245 |
+
st.error(translations['invalid_number'])
|
246 |
except NumberParseException:
|
247 |
+
st.error(translations['failed_to_parse'])
|
248 |
|