Cricles commited on
Commit
fbca9b2
·
1 Parent(s): 25734d7

Upload 6 files

Browse files
Files changed (7) hide show
  1. .gitattributes +2 -0
  2. app.py +85 -0
  3. mini_logo1.png +0 -0
  4. model_fasttext.bin +3 -0
  5. requirements.txt +4 -0
  6. top_logo1.png +3 -0
  7. билли.png +3 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ билли.png filter=lfs diff=lfs merge=lfs -text
37
+ top_logo1.png filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import base64
3
+ import fasttext
4
+ from annotated_text import annotated_text
5
+
6
+ st.set_page_config(
7
+ page_title="detoxi.ai",
8
+ page_icon="./mini_logo1.png",
9
+ layout="centered"
10
+ )
11
+
12
+ # Кодируем логотип в base64 (для локальных файлов)
13
+ @st.cache_data
14
+ def get_image_base64(path):
15
+ with open(path, "rb") as img_file:
16
+ return base64.b64encode(img_file.read()).decode()
17
+
18
+ @st.cache_resource # Кэширование модели для ускорения работы
19
+ def load_model():
20
+ model = fasttext.load_model('./model_fasttext.pkl')
21
+ return model
22
+
23
+ model = load_model()
24
+
25
+ bin_str = get_image_base64("./билли.png")
26
+ page_bg_img = '''
27
+ <style>
28
+ .stApp{
29
+ background-image: linear-gradient(rgba(255, 255, 255, 0.7),
30
+ rgba(255, 255, 255, 0.7)),
31
+ url("data:image/png;base64,%s");
32
+ background-size: cover;
33
+ background-position: center;
34
+ background-repeat: no-repeat;
35
+ background-attachment: fixed;
36
+ }
37
+ </style>
38
+ ''' % bin_str
39
+ st.markdown(page_bg_img, unsafe_allow_html=True)
40
+
41
+ logo_base64 = get_image_base64("./top_logo1.png")
42
+
43
+ # Используем HTML для вставки логотипа в заголовок
44
+ st.markdown(
45
+ f"""
46
+ <div style="display: flex; justify-content: center;">
47
+ <img src="data:image/png;base64,{logo_base64}" width="400">
48
+ </div>
49
+ """,
50
+ unsafe_allow_html=True
51
+ )
52
+
53
+ # Описание
54
+ st.write("""<p style='text-align: center; font-size: 24px;'>Это приложение сделает твою речь менее токсичной.
55
+ И даже не придётся платить 300 bucks.</p>""", unsafe_allow_html=True)
56
+
57
+ def highlight_obscene_words(text):
58
+ label,probs=model.predict(text)
59
+ if label[0]=='__label__positive':
60
+ return (text + " ", "приемлемо", "#47916B")
61
+ else:
62
+ return (text + " ", "токсично", "#ffcccc")
63
+
64
+ # Боковая панель
65
+ with st.sidebar:
66
+ st.header("""О приложении""")
67
+ st.write("""
68
+ Это приложение, созданно для сдачи задания по ML.
69
+ Оно показывает, чему мы научились за эту домашку:
70
+ - Благославлять создателей hugging face
71
+ - Писать прототипы приложений с помощью библиотеки Streamlit
72
+ - Дружно работать в команде
73
+ """, unsafe_allow_html=True)
74
+
75
+ st.write("""<p style='text-align: center;'>Введите текст ниже, и приложение определит токсичность твоего предложения.</p>""", unsafe_allow_html=True)
76
+
77
+ user_input = st.text_area('',height=200)
78
+
79
+ if st.button("Проверить текст"):
80
+ if user_input.strip():
81
+ st.subheader("Результат:")
82
+ annotated_content = highlight_obscene_words(user_input)
83
+ annotated_text(annotated_content)
84
+ else:
85
+ st.warning("Пожалуйста, введите текст для проверки")
mini_logo1.png ADDED
model_fasttext.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1134dd11e56c7f3110dad960c0cbdeb2d463846602077fcb390e2738a4b5809c
3
+ size 49285271
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ pybase64
2
+ st_annotated_text
3
+ fasttext
4
+ numpy==1.26.0
top_logo1.png ADDED

Git LFS Details

  • SHA256: 8b9b741daec3b33cae1e1d8aebf8264d9fd6f647d0e6c10cabc1763cfb4649b5
  • Pointer size: 131 Bytes
  • Size of remote file: 170 kB
билли.png ADDED

Git LFS Details

  • SHA256: 9565ad157b4020ab01406087c8bcea3b9ef12a0422562e85642ec8f97391a8f4
  • Pointer size: 131 Bytes
  • Size of remote file: 293 kB