rafaldembski commited on
Commit
1422f6d
verified
1 Parent(s): 337d0e5

Update utils/functions.py

Browse files
Files changed (1) hide show
  1. 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}