Spaces:
Sleeping
Sleeping
rafaldembski
commited on
Commit
•
baa78ec
1
Parent(s):
3e79317
Update utils/functions.py
Browse files- utils/functions.py +25 -4
utils/functions.py
CHANGED
@@ -7,6 +7,10 @@ import requests
|
|
7 |
import os
|
8 |
import json
|
9 |
from datetime import datetime
|
|
|
|
|
|
|
|
|
10 |
|
11 |
# Ścieżka do pliku JSON przechowującego fałszywe numery
|
12 |
FAKE_NUMBERS_FILE = 'fake_numbers.json'
|
@@ -44,6 +48,7 @@ def add_fake_number(phone_number):
|
|
44 |
json.dump(fake_numbers, f, indent=4)
|
45 |
return True
|
46 |
except Exception as e:
|
|
|
47 |
return False
|
48 |
else:
|
49 |
return False # Numer już istnieje
|
@@ -86,13 +91,14 @@ def simple_checks(message):
|
|
86 |
return warnings
|
87 |
|
88 |
# Funkcja do analizy wiadomości za pomocą API SambaNova z głębszym procesem myślenia
|
89 |
-
def analyze_message(message, phone_number):
|
90 |
-
if not
|
|
|
91 |
return "Brak klucza API.", "Brak klucza API.", "Brak klucza API."
|
92 |
|
93 |
url = "https://api.sambanova.ai/v1/chat/completions"
|
94 |
headers = {
|
95 |
-
"Authorization": f"Bearer {
|
96 |
}
|
97 |
# Rozbudowany system prompt z głębszym procesem myślenia
|
98 |
system_prompt = """
|
@@ -124,7 +130,10 @@ Twoja odpowiedź powinna być sformatowana dokładnie w powyższy sposób, używ
|
|
124 |
user_prompt = f"""Przeanalizuj następującą wiadomość pod kątem potencjalnego oszustwa:
|
125 |
|
126 |
Wiadomość: "{message}"
|
127 |
-
Numer telefonu nadawcy: {phone_number}"
|
|
|
|
|
|
|
128 |
|
129 |
Podaj swoją analizę i wnioski zgodnie z powyższymi wytycznymi."""
|
130 |
|
@@ -156,8 +165,10 @@ Podaj swoją analizę i wnioski zgodnie z powyższymi wytycznymi."""
|
|
156 |
|
157 |
return analysis_text, risk_text, recommendations_text
|
158 |
else:
|
|
|
159 |
return f"Błąd API: {response.status_code} - {response.text}", "Błąd analizy.", "Błąd analizy."
|
160 |
except Exception as e:
|
|
|
161 |
return f"Błąd połączenia z API: {e}", "Błąd analizy.", "Błąd analizy."
|
162 |
|
163 |
# Inicjalizacja pliku statystyk
|
@@ -167,6 +178,16 @@ def init_stats_file():
|
|
167 |
with open(stats_file, 'w') as f:
|
168 |
json.dump({"total_analyses": 0, "total_frauds_detected": 0}, f)
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
# Aktualizacja statystyk analizy
|
171 |
def update_stats(fraud_detected=False):
|
172 |
stats_file = 'stats.json'
|
|
|
7 |
import os
|
8 |
import json
|
9 |
from datetime import datetime
|
10 |
+
import logging
|
11 |
+
|
12 |
+
# Konfiguracja logowania
|
13 |
+
logging.basicConfig(filename='app.log', level=logging.ERROR, format='%(asctime)s %(levelname)s:%(message)s')
|
14 |
|
15 |
# Ścieżka do pliku JSON przechowującego fałszywe numery
|
16 |
FAKE_NUMBERS_FILE = 'fake_numbers.json'
|
|
|
48 |
json.dump(fake_numbers, f, indent=4)
|
49 |
return True
|
50 |
except Exception as e:
|
51 |
+
logging.error(f"Nie udało się zapisać numeru {phone_number}: {e}")
|
52 |
return False
|
53 |
else:
|
54 |
return False # Numer już istnieje
|
|
|
91 |
return warnings
|
92 |
|
93 |
# Funkcja do analizy wiadomości za pomocą API SambaNova z głębszym procesem myślenia
|
94 |
+
def analyze_message(message, phone_number, additional_info, api_key):
|
95 |
+
if not api_key:
|
96 |
+
logging.error("Brak klucza API.")
|
97 |
return "Brak klucza API.", "Brak klucza API.", "Brak klucza API."
|
98 |
|
99 |
url = "https://api.sambanova.ai/v1/chat/completions"
|
100 |
headers = {
|
101 |
+
"Authorization": f"Bearer {api_key}"
|
102 |
}
|
103 |
# Rozbudowany system prompt z głębszym procesem myślenia
|
104 |
system_prompt = """
|
|
|
130 |
user_prompt = f"""Przeanalizuj następującą wiadomość pod kątem potencjalnego oszustwa:
|
131 |
|
132 |
Wiadomość: "{message}"
|
133 |
+
Numer telefonu nadawcy: "{phone_number}"
|
134 |
+
|
135 |
+
Dodatkowe informacje:
|
136 |
+
{additional_info}
|
137 |
|
138 |
Podaj swoją analizę i wnioski zgodnie z powyższymi wytycznymi."""
|
139 |
|
|
|
165 |
|
166 |
return analysis_text, risk_text, recommendations_text
|
167 |
else:
|
168 |
+
logging.error(f"Błąd API: {response.status_code} - {response.text}")
|
169 |
return f"Błąd API: {response.status_code} - {response.text}", "Błąd analizy.", "Błąd analizy."
|
170 |
except Exception as e:
|
171 |
+
logging.error(f"Błąd połączenia z API: {e}")
|
172 |
return f"Błąd połączenia z API: {e}", "Błąd analizy.", "Błąd analizy."
|
173 |
|
174 |
# Inicjalizacja pliku statystyk
|
|
|
178 |
with open(stats_file, 'w') as f:
|
179 |
json.dump({"total_analyses": 0, "total_frauds_detected": 0}, f)
|
180 |
|
181 |
+
# Pobranie statystyk
|
182 |
+
def get_stats():
|
183 |
+
stats_file = 'stats.json'
|
184 |
+
try:
|
185 |
+
with open(stats_file, 'r') as f:
|
186 |
+
stats = json.load(f)
|
187 |
+
return stats
|
188 |
+
except (json.JSONDecodeError, FileNotFoundError):
|
189 |
+
return {"total_analyses": 0, "total_frauds_detected": 0}
|
190 |
+
|
191 |
# Aktualizacja statystyk analizy
|
192 |
def update_stats(fraud_detected=False):
|
193 |
stats_file = 'stats.json'
|