import streamlit as st import base64 import fasttext from annotated_text import annotated_text 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(): model = fasttext.load_model('./model_fasttext.bin') return model model = load_model() bin_str = get_image_base64("./билли.png") page_bg_img = ''' ''' % bin_str st.markdown(page_bg_img, unsafe_allow_html=True) logo_base64 = get_image_base64("./top_logo1.png") # Используем HTML для вставки логотипа в заголовок st.markdown( f"""
""", unsafe_allow_html=True ) # Описание st.write("""

Это приложение сделает твою речь менее токсичной. И даже не придётся платить 300 bucks.

""", unsafe_allow_html=True) def highlight_obscene_words(text): label,probs=model.predict(text) if label[0]=='__label__positive': return (text + " ", "приемлемо", "#47916B") else: return (text + " ", "токсично", "#ffcccc") # Боковая панель with st.sidebar: st.header("""О приложении""") st.write(""" Это приложение, созданно для сдачи задания по ML. Оно показывает, чему мы научились за эту домашку: - Благославлять создателей hugging face - Писать прототипы приложений с помощью библиотеки Streamlit - Дружно работать в команде """, unsafe_allow_html=True) st.write("""

Введите текст ниже, и приложение определит токсичность твоего предложения.

""", unsafe_allow_html=True) user_input = st.text_area('',height=200) if st.button("Проверить текст"): if user_input.strip(): st.subheader("Результат:") annotated_content = highlight_obscene_words(user_input) annotated_text(annotated_content) else: st.warning("Пожалуйста, введите текст для проверки")