rafaldembski commited on
Commit
baa78ec
1 Parent(s): 3e79317

Update utils/functions.py

Browse files
Files changed (1) hide show
  1. 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 API_KEY:
 
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 {API_KEY}"
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'