rafaldembski commited on
Commit
bc1666b
1 Parent(s): 3b2c8d9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -84
app.py CHANGED
@@ -1,87 +1,46 @@
 
 
 
1
  import streamlit as st
2
- from utils.functions import get_phone_info, simple_checks, analyze_message
 
3
  import os
4
 
5
- def main():
6
- st.set_page_config(page_title="📱 Detektor Fałszywych Wiadomości SMS", page_icon="📱")
7
- st.title("📱 Detektor Fałszywych Wiadomości SMS")
8
- st.write("Wprowadź treść wiadomości SMS oraz numer telefonu nadawcy, aby przeprowadzić analizę pod kątem potencjalnego oszustwa.")
9
-
10
- with st.form("sms_form"):
11
- message = st.text_area("Treść wiadomości SMS", height=150)
12
- phone_number = st.text_input("Numer telefonu nadawcy (w formacie międzynarodowym, np. +48123123123)")
13
-
14
- st.markdown("### Dodatkowe Informacje")
15
- # Dodane pytania
16
- frequency = st.selectbox(
17
- "Jak często otrzymujesz wiadomości od tego numeru?",
18
- ('Pierwszy raz', 'Sporadycznie', 'Regularnie')
19
- )
20
- last_received = st.selectbox(
21
- "Kiedy ostatnio otrzymałeś podobną wiadomość?",
22
- ('Dziś', 'W ciągu ostatniego tygodnia', 'W ciągu ostatniego miesiąca', 'Dłużej')
23
- )
24
- confidence_level = st.slider(
25
- "Jak bardzo jesteś pewny, że wiadomość jest autentyczna?",
26
- 1, 5, 3,
27
- help="1: Bardzo mało pewny, 5: Bardzo pewny"
28
- )
29
- unexpected = st.radio(
30
- "Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?",
31
- ('Tak', 'Nie')
32
- )
33
- additional_notes = st.text_area("Dodatkowe uwagi lub informacje (opcjonalnie)", height=100)
34
-
35
- submitted = st.form_submit_button("Analizuj wiadomość")
36
-
37
- if submitted:
38
- if not message.strip():
39
- st.error("Proszę wprowadzić treść wiadomości.")
40
- elif not phone_number.strip():
41
- st.error("Proszę wprowadzić numer telefonu nadawcy.")
42
- else:
43
- # Informacje o numerze telefonu
44
- country, operator = get_phone_info(phone_number)
45
- if country and operator:
46
- st.write(f"**Informacje o numerze telefonu:**")
47
- st.write(f"- **Kraj:** {country}")
48
- st.write(f"- **Operator:** {operator}")
49
- else:
50
- st.write("Nie udało się uzyskać informacji o numerze telefonu.")
51
-
52
- # Heurystyczne sprawdzenia
53
- warnings = simple_checks(message)
54
- if warnings:
55
- st.warning("Znaleziono następujące potencjalne czerwone flagi:")
56
- for warn in warnings:
57
- st.write(f"- {warn}")
58
-
59
- # Zbierz dodatkowe informacje
60
- additional_info = f"""
61
- **Jak często otrzymujesz wiadomości od tego numeru?** {frequency}
62
- **Kiedy ostatnio otrzymałeś podobną wiadomość?** {last_received}
63
- **Jak bardzo jesteś pewny, że wiadomość jest autentyczna?** {confidence_level}/5
64
- **Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?** {unexpected}
65
- **Dodatkowe uwagi lub informacje:** {additional_notes}
66
- """
67
-
68
- # Pobierz klucz API
69
- api_key = os.getenv('SAMBANOVA_API_KEY')
70
- if not api_key:
71
- st.error("Brak klucza API. Ustaw zmienną środowiskową SAMBANOVA_API_KEY w ustawieniach aplikacji.")
72
- else:
73
- # Analiza za pomocą modelu AI
74
- with st.spinner("Analizuję wiadomość przy użyciu modelu AI..."):
75
- analysis_text, risk_text, recommendations_text = analyze_message(message, phone_number, additional_info, api_key)
76
- st.subheader("📑 Analiza treści wiadomości:")
77
- st.markdown(analysis_text)
78
- st.subheader("⚠️ Ocena ryzyka oszustwa:")
79
- st.markdown(risk_text)
80
- st.subheader("✅ Zalecenia dla użytkownika:")
81
- st.markdown(recommendations_text)
82
-
83
- st.info("📌 Pamiętaj: zawsze zachowuj ostrożność przy otrzymywaniu wiadomości od nieznanych nadawców. Nie udostępniaj poufnych informacji i nie klikaj w podejrzane linki.")
84
-
85
- if __name__ == "__main__":
86
- main()
87
-
 
1
+ ```python
2
+ # app.py
3
+
4
  import streamlit as st
5
+ from streamlit_option_menu import option_menu
6
+ from utils.functions import get_phone_info, simple_checks, analyze_message, init_stats_file, update_stats
7
  import os
8
 
9
+ # Inicjalizacja pliku statystyk
10
+ init_stats_file()
11
+
12
+ # Konfiguracja strony
13
+ st.set_page_config(page_title="📱 Detektor Fałszywych Wiadomości SMS", page_icon="📱", layout="wide")
14
+
15
+ # Tworzenie poziomego menu
16
+ selected = option_menu(
17
+ menu_title=None, # Brak tytułu menu
18
+ options=["Analiza SMS", "O Projekcie", "Edukacja", "Statystyki", "Kontakt"],
19
+ icons=["house", "info-circle", "book", "bar-chart", "envelope"],
20
+ menu_icon="cast",
21
+ default_index=0,
22
+ orientation="horizontal",
23
+ styles={
24
+ "container": {"padding": "0!important", "background-color": "#fafafa"},
25
+ "icon": {"color": "black", "font-size": "18px"},
26
+ "nav-link": {"font-size": "16px", "text-align": "left", "margin":"0px", "--hover-color": "#eee"},
27
+ "nav-link-selected": {"background-color": "#02ab21"},
28
+ }
29
+ )
30
+
31
+ # Importowanie modułów dla każdej zakładki
32
+ if selected == "Analiza SMS":
33
+ from pages.Analysis import show_analysis
34
+ show_analysis()
35
+ elif selected == "O Projekcie":
36
+ from pages.About import main as show_about
37
+ show_about()
38
+ elif selected == "Edukacja":
39
+ from pages.Education import main as show_education
40
+ show_education()
41
+ elif selected == "Statystyki":
42
+ from pages.Statistics import main as show_statistics
43
+ show_statistics()
44
+ elif selected == "Kontakt":
45
+ from pages.Contact import main as show_contact
46
+ show_contact()