rafaldembski commited on
Commit
c154d30
·
verified ·
1 Parent(s): 2daa86a

Update pages/Analysis.py

Browse files
Files changed (1) hide show
  1. pages/Analysis.py +39 -38
pages/Analysis.py CHANGED
@@ -7,11 +7,10 @@ from utils.functions import (
7
  analyze_message,
8
  update_stats,
9
  add_to_history,
10
- is_fake_number,
11
- add_fake_number
12
  )
13
  import os
14
- import re # Import do obsługi wyrażeń regularnych
15
  from phonenumbers import parse, is_valid_number, NumberParseException
16
 
17
  def show_analysis(language):
@@ -82,71 +81,73 @@ def show_analysis(language):
82
  }
83
  }
84
 
85
- st.header(page_translations[language]['header'])
86
- st.write(page_translations[language]['content'])
 
 
87
 
88
  with st.form("sms_form"):
89
  message = st.text_area(
90
- label=page_translations[language]['content'], # Non-empty label for accessibility
91
- placeholder=page_translations[language]['input_placeholder'],
92
  height=150
93
  )
94
  phone_number = st.text_input(
95
- label=page_translations[language]['phone_input_label'],
96
  value="",
97
- max_chars=15
98
  )
99
 
100
- st.markdown(f"### {page_translations[language]['additional_info_header']}")
101
 
102
  # Dodane pytania
103
  frequency = st.selectbox(
104
- label=page_translations[language]['frequency_label'],
105
- options=page_translations[language]['frequency_options']
106
  )
107
  last_received = st.selectbox(
108
- label=page_translations[language]['last_received_label'],
109
- options=page_translations[language]['last_received_options']
110
  )
111
  confidence_level = st.slider(
112
- label=page_translations[language]['confidence_level_label'],
113
  min_value=1,
114
  max_value=5,
115
  value=3,
116
- help=page_translations[language]['confidence_level_help']
117
  )
118
  unexpected = st.radio(
119
- label=page_translations[language]['unexpected_label'],
120
- options=page_translations[language]['unexpected_options']
121
  )
122
  additional_notes = st.text_area(
123
- label=page_translations[language]['additional_notes_label'],
124
  height=100
125
  )
126
 
127
- submitted = st.form_submit_button(page_translations[language]['analyze_button'])
128
 
129
  if submitted:
130
  if not message.strip():
131
- st.error(page_translations[language]['input_placeholder'])
132
  elif not phone_number.strip():
133
- st.error(page_translations[language]['phone_input_label'])
134
  else:
135
  # Informacje o numerze telefonu
136
  country, operator = get_phone_info(phone_number)
137
  if country and operator:
138
- st.write("**Informacje o numerze telefonu:**")
139
- st.write(f"- **Kraj:** {country}")
140
  st.write(f"- **Operator:** {operator}")
141
  else:
142
- st.write("Nie udało się uzyskać informacji o numerze telefonu.")
143
 
144
  # Sprawdzenie, czy numer jest w bazie fałszywych numerów
145
  if is_fake_number(phone_number):
146
- st.warning(page_translations[language]['result_positive'])
147
  fraud_detected = True
148
  else:
149
- st.info(page_translations[language]['result_negative'])
150
  fraud_detected = False
151
 
152
  # Przeprowadź proste sprawdzenia heurystyczne
@@ -187,17 +188,17 @@ def show_analysis(language):
187
  # Pobierz klucz API z Secret
188
  api_key = os.getenv('SAMBANOVA_API_KEY')
189
  if not api_key:
190
- st.error("Brak klucza API. Ustaw zmienną środowiskową SAMBANOVA_API_KEY.")
191
  else:
192
- with st.spinner("Analizuję wiadomość przy użyciu modelu AI..."):
193
  analysis_text, risk_text, recommendations_text = analyze_message(
194
  message, phone_number, additional_info, api_key, language
195
  )
196
- st.subheader("📑 Analiza treści wiadomości:")
197
  st.markdown(analysis_text)
198
- st.subheader("⚠️ Ocena ryzyka oszustwa:")
199
  st.markdown(risk_text)
200
- st.subheader("✅ Zalecenia dla użytkownika:")
201
  st.markdown(recommendations_text)
202
 
203
  # Aktualizacja statystyk na podstawie oceny ryzyka
@@ -211,21 +212,21 @@ def show_analysis(language):
211
  # Dodanie analizy do historii
212
  add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
213
 
214
- st.info("📌 Pamiętaj: zachowaj ostrożność przy wiadomościach od nieznanych nadawców.")
215
 
216
  # Zgłoszenie numeru jako oszustwo
217
  if fraud_detected:
218
- if st.button(page_translations[language]['report_button']):
219
  try:
220
  parsed_number = parse(phone_number, None)
221
  if is_valid_number(parsed_number):
222
  success = add_fake_number(phone_number)
223
  if success:
224
- st.success("Numer został zgłoszony jako oszustwo.")
225
  else:
226
- st.info("Numer został już zgłoszony jako oszustwo.")
227
  else:
228
- st.error("Podany numer telefonu jest nieprawidłowy.")
229
  except NumberParseException:
230
- st.error("Nie udało się przetworzyć numeru telefonu. Upewnij się, że jest on w poprawnym formacie.")
231
 
 
7
  analyze_message,
8
  update_stats,
9
  add_to_history,
10
+ is_fake_number
 
11
  )
12
  import os
13
+ import re
14
  from phonenumbers import parse, is_valid_number, NumberParseException
15
 
16
  def show_analysis(language):
 
81
  }
82
  }
83
 
84
+ translations = page_translations[language]
85
+
86
+ st.header(translations['header'])
87
+ st.write(translations['content'])
88
 
89
  with st.form("sms_form"):
90
  message = st.text_area(
91
+ label=translations['content'], # Non-empty label for accessibility
92
+ placeholder=translations['input_placeholder'],
93
  height=150
94
  )
95
  phone_number = st.text_input(
96
+ label=translations['phone_input_label'],
97
  value="",
98
+ max_chars=20 # Zwiększenie limitu znaków dla numerów międzynarodowych
99
  )
100
 
101
+ st.markdown(f"### {translations['additional_info_header']}")
102
 
103
  # Dodane pytania
104
  frequency = st.selectbox(
105
+ label=translations['frequency_label'],
106
+ options=translations['frequency_options']
107
  )
108
  last_received = st.selectbox(
109
+ label=translations['last_received_label'],
110
+ options=translations['last_received_options']
111
  )
112
  confidence_level = st.slider(
113
+ label=translations['confidence_level_label'],
114
  min_value=1,
115
  max_value=5,
116
  value=3,
117
+ help=translations['confidence_level_help']
118
  )
119
  unexpected = st.radio(
120
+ label=translations['unexpected_label'],
121
+ options=translations['unexpected_options']
122
  )
123
  additional_notes = st.text_area(
124
+ label=translations['additional_notes_label'],
125
  height=100
126
  )
127
 
128
+ submitted = st.form_submit_button(translations['analyze_button'])
129
 
130
  if submitted:
131
  if not message.strip():
132
+ st.error(translations['input_placeholder'])
133
  elif not phone_number.strip():
134
+ st.error(translations['phone_input_label'])
135
  else:
136
  # Informacje o numerze telefonu
137
  country, operator = get_phone_info(phone_number)
138
  if country and operator:
139
+ st.write("**Phone Number Information:**")
140
+ st.write(f"- **Country:** {country}")
141
  st.write(f"- **Operator:** {operator}")
142
  else:
143
+ st.write("Unable to retrieve phone number information.")
144
 
145
  # Sprawdzenie, czy numer jest w bazie fałszywych numerów
146
  if is_fake_number(phone_number):
147
+ st.warning(translations['result_positive'])
148
  fraud_detected = True
149
  else:
150
+ st.info(translations['result_negative'])
151
  fraud_detected = False
152
 
153
  # Przeprowadź proste sprawdzenia heurystyczne
 
188
  # Pobierz klucz API z Secret
189
  api_key = os.getenv('SAMBANOVA_API_KEY')
190
  if not api_key:
191
+ st.error("API key is missing. Please set the SAMBANOVA_API_KEY environment variable.")
192
  else:
193
+ with st.spinner("Analyzing the message using AI model..."):
194
  analysis_text, risk_text, recommendations_text = analyze_message(
195
  message, phone_number, additional_info, api_key, language
196
  )
197
+ st.subheader("📑 Message Content Analysis:")
198
  st.markdown(analysis_text)
199
+ st.subheader("⚠️ Fraud Risk Assessment:")
200
  st.markdown(risk_text)
201
+ st.subheader("✅ User Recommendations:")
202
  st.markdown(recommendations_text)
203
 
204
  # Aktualizacja statystyk na podstawie oceny ryzyka
 
212
  # Dodanie analizy do historii
213
  add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
214
 
215
+ st.info("📌 Remember: Stay cautious with messages from unknown senders.")
216
 
217
  # Zgłoszenie numeru jako oszustwo
218
  if fraud_detected:
219
+ if st.button(translations['report_button']):
220
  try:
221
  parsed_number = parse(phone_number, None)
222
  if is_valid_number(parsed_number):
223
  success = add_fake_number(phone_number)
224
  if success:
225
+ st.success("Number has been reported as fraud.")
226
  else:
227
+ st.info("Number has already been reported as fraud.")
228
  else:
229
+ st.error("The provided phone number is invalid.")
230
  except NumberParseException:
231
+ st.error("Failed to parse the phone number. Please ensure it is in the correct format.")
232