rafaldembski commited on
Commit
3e18d05
1 Parent(s): b453216

Update utils/functions.py

Browse files
Files changed (1) hide show
  1. utils/functions.py +9 -48
utils/functions.py CHANGED
@@ -1,7 +1,7 @@
1
  import phonenumbers
2
  from phonenumbers import geocoder, carrier
3
  import re
4
- import requests # Make sure requests is imported
5
  import os
6
  import json
7
  from datetime import datetime
@@ -18,6 +18,7 @@ def init_fake_numbers_file():
18
  if not os.path.exists(FAKE_NUMBERS_FILE):
19
  with open(FAKE_NUMBERS_FILE, 'w') as f:
20
  json.dump([], f)
 
21
  else:
22
  try:
23
  with open(FAKE_NUMBERS_FILE, 'r') as f:
@@ -26,6 +27,7 @@ def init_fake_numbers_file():
26
  # Jeśli plik jest uszkodzony lub pusty, zresetuj go do pustej listy
27
  with open(FAKE_NUMBERS_FILE, 'w') as f:
28
  json.dump([], f)
 
29
 
30
  # Dodanie numeru telefonu do pliku JSON
31
  def add_fake_number(phone_number):
@@ -43,11 +45,13 @@ def add_fake_number(phone_number):
43
  try:
44
  with open(FAKE_NUMBERS_FILE, 'w') as f:
45
  json.dump(fake_numbers, f, indent=4)
 
46
  return True
47
  except Exception as e:
48
  logging.error(f"Nie udało się zapisać numeru {phone_number}: {e}")
49
  return False
50
  else:
 
51
  return False # Numer już istnieje
52
 
53
  # Sprawdzenie, czy numer telefonu jest w pliku JSON
@@ -57,6 +61,7 @@ def is_fake_number(phone_number):
57
  fake_numbers = json.load(f)
58
  return any(entry["phone_number"] == phone_number for entry in fake_numbers)
59
  except (json.JSONDecodeError, FileNotFoundError):
 
60
  return False
61
 
62
  # Funkcja do weryfikacji numeru telefonu
@@ -66,7 +71,8 @@ def get_phone_info(phone_number):
66
  country = geocoder.description_for_number(parsed_number, 'pl')
67
  operator = carrier.name_for_number(parsed_number, 'pl')
68
  return country, operator
69
- except phonenumbers.NumberParseException:
 
70
  return None, None
71
 
72
  # Proste sprawdzenia heurystyczne wiadomości
@@ -125,52 +131,7 @@ Jesteś zaawansowanym asystentem AI specjalizującym się w identyfikacji fałsz
125
  - Jeśli to możliwe, zasugeruj dodatkowe środki ostrożności, które użytkownik może podjąć, aby chronić swoje dane osobowe i finansowe.
126
  </recommendations>
127
  """,
128
- 'German': """
129
- Du bist ein fortgeschrittener KI-Assistent, spezialisiert auf die Identifizierung gefälschter SMS-Nachrichten. Deine Aufgabe ist es, eine detaillierte Analyse der Nachricht durchzuführen, indem du einen tiefgreifenden Denkprozess nutzt und eine umfassende Bewertung lieferst. Deine Antwort sollte in drei Abschnitte unterteilt sein:
130
-
131
- <analysis>
132
- **Nachrichteninhaltsanalyse:**
133
- - Führe eine detaillierte Analyse des Nachrichteninhalts durch und identifiziere potenzielle rote Flaggen wie sprachliche Fehler, Aufforderungen zur Preisgabe persönlicher Daten, dringende Kontaktanfragen usw.
134
- - Beschreibe den sprachlichen und kulturellen Kontext der Nachricht.
135
- - Identifiziere alle Elemente, die darauf hindeuten könnten, dass die Nachricht ein Versuch ist, Informationen oder Geld zu erlangen.
136
- </analysis>
137
-
138
- <risk_assessment>
139
- **Betrugsrisikobewertung:**
140
- - Basierend auf der Inhaltsanalyse und den verfügbaren Informationen, bewerte die Wahrscheinlichkeit, dass die Nachricht ein Betrug ist. Verwende eine Skala von 1 bis 10, wobei 1 sehr geringes Risiko und 10 sehr hohes Risiko bedeutet.
141
- - Erkläre, welche Faktoren diese Bewertung beeinflussen.
142
- </risk_assessment>
143
-
144
- <recommendations>
145
- **Empfehlungen für den Benutzer:**
146
- - Gib klare und konkrete Empfehlungen zu den nächsten Schritten, die der Benutzer unternehmen sollte.
147
- - Berücksichtige Sicherheitsempfehlungen wie das Blockieren des Absenders, das Melden der Nachricht an entsprechende Behörden oder das Ignorieren der Nachricht.
148
- - Wenn möglich, schlage zusätzliche Vorsichtsmaßnahmen vor, die der Benutzer ergreifen kann, um seine persönlichen und finanziellen Daten zu schützen.
149
- </recommendations>
150
- """,
151
- 'English': """
152
- You are an advanced AI assistant specializing in identifying fake SMS messages. Your task is to conduct a detailed analysis of the message, utilizing a deep thinking process and providing a comprehensive assessment. Your response should be divided into three sections:
153
-
154
- <analysis>
155
- **Message Content Analysis:**
156
- - Conduct a detailed analysis of the message content, identifying potential red flags such as language errors, requests for personal information, urgent contact requests, etc.
157
- - Describe the linguistic and cultural context of the message.
158
- - Identify any elements that may suggest the message is an attempt to solicit information or money.
159
- </analysis>
160
-
161
- <risk_assessment>
162
- **Fraud Risk Assessment:**
163
- - Based on the content analysis and available information, assess the likelihood that the message is fraudulent. Use a scale from 1 to 10, where 1 indicates very low risk and 10 indicates very high risk.
164
- - Explain the factors that influence this assessment.
165
- </risk_assessment>
166
-
167
- <recommendations>
168
- **User Recommendations:**
169
- - Provide clear and concrete recommendations regarding the next steps the user should take.
170
- - Include security suggestions such as blocking the sender, reporting the message to appropriate authorities, or ignoring the message.
171
- - If possible, suggest additional precautionary measures the user can take to protect their personal and financial information.
172
- </recommendations>
173
- """
174
  }
175
 
176
  system_prompt = system_prompts.get(language, system_prompts['English']) # Default to English if language not found
 
1
  import phonenumbers
2
  from phonenumbers import geocoder, carrier
3
  import re
4
+ import requests # Ensure requests is imported
5
  import os
6
  import json
7
  from datetime import datetime
 
18
  if not os.path.exists(FAKE_NUMBERS_FILE):
19
  with open(FAKE_NUMBERS_FILE, 'w') as f:
20
  json.dump([], f)
21
+ logging.info("Plik fake_numbers.json został zainicjalizowany.")
22
  else:
23
  try:
24
  with open(FAKE_NUMBERS_FILE, 'r') as f:
 
27
  # Jeśli plik jest uszkodzony lub pusty, zresetuj go do pustej listy
28
  with open(FAKE_NUMBERS_FILE, 'w') as f:
29
  json.dump([], f)
30
+ logging.warning("Plik fake_numbers.json był uszkodzony. Został zresetowany.")
31
 
32
  # Dodanie numeru telefonu do pliku JSON
33
  def add_fake_number(phone_number):
 
45
  try:
46
  with open(FAKE_NUMBERS_FILE, 'w') as f:
47
  json.dump(fake_numbers, f, indent=4)
48
+ logging.info(f"Numer {phone_number} został zapisany w fake_numbers.json.")
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
+ logging.info(f"Numer {phone_number} już istnieje w fake_numbers.json.")
55
  return False # Numer już istnieje
56
 
57
  # Sprawdzenie, czy numer telefonu jest w pliku JSON
 
61
  fake_numbers = json.load(f)
62
  return any(entry["phone_number"] == phone_number for entry in fake_numbers)
63
  except (json.JSONDecodeError, FileNotFoundError):
64
+ logging.warning(f"Plik fake_numbers.json nie został znaleziony lub wystąpił błąd podczas odczytu.")
65
  return False
66
 
67
  # Funkcja do weryfikacji numeru telefonu
 
71
  country = geocoder.description_for_number(parsed_number, 'pl')
72
  operator = carrier.name_for_number(parsed_number, 'pl')
73
  return country, operator
74
+ except phonenumbers.NumberParseException as e:
75
+ logging.error(f"Nie udało się przetworzyć numeru {phone_number}: {e}")
76
  return None, None
77
 
78
  # Proste sprawdzenia heurystyczne wiadomości
 
131
  - Jeśli to możliwe, zasugeruj dodatkowe środki ostrożności, które użytkownik może podjąć, aby chronić swoje dane osobowe i finansowe.
132
  </recommendations>
133
  """,
134
+ # Add German and English prompts as you had before.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  }
136
 
137
  system_prompt = system_prompts.get(language, system_prompts['English']) # Default to English if language not found