Spaces:
Sleeping
Sleeping
File size: 3,496 Bytes
fbca9b2 0bb3387 52b49c5 f6488eb fbca9b2 80214a5 fbca9b2 80214a5 52b49c5 d97910c fbca9b2 9031521 d97910c 24f0828 d97910c 2b92000 80214a5 2b92000 80214a5 d97910c e0db4e5 80214a5 fbca9b2 80214a5 0bb3387 296c318 245950d fbca9b2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
import streamlit as st
import base64
import fasttext
import re
import torch
from model_wrapper.model_wrapper import ModelWrapper
st.set_page_config(
page_title="detoxi.ai",
page_icon="./mini_logo1.png",
layout="centered"
)
# Кодируем логотип в base64 (для локальных файлов)
@st.cache_data
def get_image_base64(path):
with open(path, "rb") as img_file:
return base64.b64encode(img_file.read()).decode()
@st.cache_resource # Кэширование модели для ускорения работы
def load_model():
return ModelWrapper()
model_wrapper= load_model()
bin_str = get_image_base64("./билли.png")
page_bg_img = '''
<style>
.stApp{
background-image: linear-gradient(rgba(255, 255, 255, 0.7),
rgba(255, 255, 255, 0.7)),
url("data:image/png;base64,%s");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
}
</style>
''' % bin_str
st.markdown(page_bg_img, unsafe_allow_html=True)
logo_base64 = get_image_base64("./top_logo1.png")
# Используем HTML для вставки логотипа в заголовок
st.markdown(
f"""
<div style="display: flex; justify-content: center;">
<img src="data:image/png;base64,{logo_base64}" width="400">
</div>
""",
unsafe_allow_html=True
)
# Описание
st.write("""<p style='text-align: center; font-size: 24px;'>Это приложение сделает твою речь менее токсичной.
И даже не придётся платить 300 bucks.</p>""", unsafe_allow_html=True)
# Боковая панель
with st.sidebar:
st.header("""О приложении""")
st.write("""
Это приложение, созданно для сдачи задания по ML.
Оно показывает, чему мы научились за эту домашку:
- Благославлять создателей hugging face
- Писать прототипы приложений с помощью библиотеки Streamlit
- Дружно работать в команде
""", unsafe_allow_html=True)
st.write("""<p style='text-align: center;'>Введите текст ниже, и приложение определит токсичность твоего предложения.</p>""", unsafe_allow_html=True)
user_input = st.text_area('',height=200)
model_type = st.radio(
"Выберите модель",
("fasttext", "ru-BERT")
)
def highlight_obscene_words(text, model_type):
label, prob=model_wrapper(text.lower(),model_type)
if label=='__label__positive':
st.markdown(
"<span style='background:#47916B;'>{}:приемлемо</span>".format(text),
unsafe_allow_html=True
)
else:
st.markdown(
"<span style='background:#ffcccc;'>{}:токсично</span>".format(text),
unsafe_allow_html=True
)
if st.button("Проверить текст"):
if user_input.strip():
st.subheader("Результат:")
result = re.split(r'[.\n!?]+', user_input)
result = [part for part in result if part.strip() != ""]
if result!=[]:
for text in result:
highlight_obscene_words(text,model_type)
else:
st.warning("Пожалуйста, введите текст для проверки") |