Spaces:
Running
Running
Update utils/functions.py
Browse files- utils/functions.py +26 -5
utils/functions.py
CHANGED
@@ -20,6 +20,8 @@ logging.basicConfig(
|
|
20 |
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
21 |
DATA_DIR = os.path.join(BASE_DIR, '..', 'data')
|
22 |
FAKE_NUMBERS_FILE = os.path.join(DATA_DIR, 'fake_numbers.json')
|
|
|
|
|
23 |
STATS_FILE = os.path.join(DATA_DIR, 'stats.json')
|
24 |
|
25 |
# Funkcje pomocnicze
|
@@ -71,6 +73,20 @@ def get_fake_numbers():
|
|
71 |
fake_numbers = load_json(FAKE_NUMBERS_FILE)
|
72 |
return fake_numbers
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
def update_stats(fraud_detected=False):
|
75 |
"""Aktualizuje statystyki analiz w pliku stats.json."""
|
76 |
stats = load_json(STATS_FILE)
|
@@ -86,12 +102,17 @@ def get_stats():
|
|
86 |
logging.info("Statystyki zosta艂y pobrane pomy艣lnie.")
|
87 |
return stats
|
88 |
|
|
|
|
|
|
|
|
|
|
|
89 |
def get_phone_info(phone_number):
|
90 |
"""Weryfikuje numer telefonu i zwraca informacje o kraju i operatorze."""
|
91 |
try:
|
92 |
parsed_number = phonenumbers.parse(phone_number, None)
|
93 |
-
country = geocoder.description_for_number(parsed_number, 'pl')
|
94 |
-
operator = carrier.name_for_number(parsed_number, 'pl')
|
95 |
if not country:
|
96 |
country = "Nieznany"
|
97 |
if not operator:
|
@@ -128,7 +149,7 @@ def analyze_message(message, phone_number, additional_info, api_key, language):
|
|
128 |
logging.error("Brak klucza API.")
|
129 |
return "Brak klucza API.", "Brak klucza API.", "Brak klucza API."
|
130 |
|
131 |
-
url = "https://api.sambanova.ai/v1/chat/completions"
|
132 |
headers = {
|
133 |
"Authorization": f"Bearer {api_key}",
|
134 |
"Content-Type": "application/json"
|
@@ -263,7 +284,7 @@ You are an advanced AI assistant specializing in identifying fake SMS messages.
|
|
263 |
"""
|
264 |
}
|
265 |
|
266 |
-
system_prompt = system_prompts.get(language, system_prompts['English'])
|
267 |
|
268 |
user_prompt = f"""Analyze the following message for potential fraud:
|
269 |
|
@@ -276,7 +297,7 @@ Additional Information:
|
|
276 |
Provide your analysis and conclusions following the guidelines above."""
|
277 |
|
278 |
payload = {
|
279 |
-
"model": "Meta-Llama-3.1-8B-Instruct",
|
280 |
"messages": [
|
281 |
{"role": "system", "content": system_prompt},
|
282 |
{"role": "user", "content": user_prompt}
|
|
|
20 |
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
21 |
DATA_DIR = os.path.join(BASE_DIR, '..', 'data')
|
22 |
FAKE_NUMBERS_FILE = os.path.join(DATA_DIR, 'fake_numbers.json')
|
23 |
+
# Utrzymano plik historii i statystyk, ale ich funkcje nie b臋d膮 wywo艂ywane w aplikacji.
|
24 |
+
HISTORY_FILE = os.path.join(DATA_DIR, 'history.json')
|
25 |
STATS_FILE = os.path.join(DATA_DIR, 'stats.json')
|
26 |
|
27 |
# Funkcje pomocnicze
|
|
|
73 |
fake_numbers = load_json(FAKE_NUMBERS_FILE)
|
74 |
return fake_numbers
|
75 |
|
76 |
+
def add_to_history(message, phone_number, analysis, risk, recommendations):
|
77 |
+
"""Dodaje wpis do historii analiz w pliku history.json."""
|
78 |
+
history = load_json(HISTORY_FILE)
|
79 |
+
history.append({
|
80 |
+
"timestamp": datetime.now().isoformat(),
|
81 |
+
"message": message,
|
82 |
+
"phone_number": phone_number,
|
83 |
+
"analysis": analysis,
|
84 |
+
"risk_assessment": risk,
|
85 |
+
"recommendations": recommendations
|
86 |
+
})
|
87 |
+
save_json(HISTORY_FILE, history)
|
88 |
+
logging.info(f"Dodano wpis do history.json dla numeru {phone_number}.")
|
89 |
+
|
90 |
def update_stats(fraud_detected=False):
|
91 |
"""Aktualizuje statystyki analiz w pliku stats.json."""
|
92 |
stats = load_json(STATS_FILE)
|
|
|
102 |
logging.info("Statystyki zosta艂y pobrane pomy艣lnie.")
|
103 |
return stats
|
104 |
|
105 |
+
def get_statistics():
|
106 |
+
"""Zwraca szczeg贸艂owe statystyki analiz z pliku stats.json."""
|
107 |
+
stats = load_json(STATS_FILE)
|
108 |
+
return stats
|
109 |
+
|
110 |
def get_phone_info(phone_number):
|
111 |
"""Weryfikuje numer telefonu i zwraca informacje o kraju i operatorze."""
|
112 |
try:
|
113 |
parsed_number = phonenumbers.parse(phone_number, None)
|
114 |
+
country = geocoder.description_for_number(parsed_number, 'pl') # Zmiana na 'pl' dla polskiego
|
115 |
+
operator = carrier.name_for_number(parsed_number, 'pl') # Zmiana na 'pl' dla polskiego
|
116 |
if not country:
|
117 |
country = "Nieznany"
|
118 |
if not operator:
|
|
|
149 |
logging.error("Brak klucza API.")
|
150 |
return "Brak klucza API.", "Brak klucza API.", "Brak klucza API."
|
151 |
|
152 |
+
url = "https://api.sambanova.ai/v1/chat/completions" # Upewnij si臋, 偶e to poprawny URL
|
153 |
headers = {
|
154 |
"Authorization": f"Bearer {api_key}",
|
155 |
"Content-Type": "application/json"
|
|
|
284 |
"""
|
285 |
}
|
286 |
|
287 |
+
system_prompt = system_prompts.get(language, system_prompts['English']) # Domy艣lnie angielski, je艣li j臋zyk nie jest obs艂ugiwany
|
288 |
|
289 |
user_prompt = f"""Analyze the following message for potential fraud:
|
290 |
|
|
|
297 |
Provide your analysis and conclusions following the guidelines above."""
|
298 |
|
299 |
payload = {
|
300 |
+
"model": "Meta-Llama-3.1-8B-Instruct", # Upewnij si臋, 偶e to poprawny model API
|
301 |
"messages": [
|
302 |
{"role": "system", "content": system_prompt},
|
303 |
{"role": "user", "content": user_prompt}
|