File size: 3,376 Bytes
0024afc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import numpy as np
import time
import base64
import requests
from PIL import Image
from io import BytesIO

from model.bert import recommend


list_genre = ['Классическая литература', 'Современная проза', 'Отечественные детективы',
              'Зарубежные детективы', 'Иронические детективы', 'Отечественная фантастика', 'Зарубежная фантастика',
              'Отечественное фэнтези', 'Зарубежное фэнтези', 'Ужасы', 'Фантастический боевик',
              'Российские любовные романы', 'Зарубежные любовные романы', 'Поэзия', 'Драматургия',
              'Публицистика', 'Биографии', 'Мемуары', 'Исторические романы', 'Комисксы и манга', 'Юмор',
              'Афоризмы и цитаты', 'Мифы легенды эпос', 'Сказки', 'Пословицы поговорки загадки', 'Прочие издания', 'Другое']


st.header("""
 Рекомендательная модель🤖
""", divider='blue')

st.info("""
 - ##### Именно здесь вы сможете получить ТОП-рекомендаций под ваши предпочтения и желания🔝
 \n- ##### Вам предстоит лишь сделать краткое описание книги, которую вы хотели бы прочитать, и выбрать некоторые параметры поиска⚙️
""")

st.image('images/recsys_image.png', caption='Картинка сгенерирована DALL-E')

st.write("""
  - ### Выбор параметров поиска:
""")

text_users = st.text_input('**Пожалуйста, опишите ваши предпочтения по выбору книги (какой она должна быть):**')

genre_book = st.selectbox('**Пожалуйста, укажите жанр книги:**', list_genre)

author = st.text_input('**Пожалуйста, укажите имя автора, если для вас это важно (❗НЕОБЯЗАТЕЛЬНО):**')

count_recommended = st.slider('**Пожалуйста, укажите какое количество рекомендаций Вы хотите получить:**', min_value=1, max_value=10, value=5)

push_button = st.button('**Получить рекомендации >>>**', type='primary')
start_time = time.time()

if push_button:

    recommend_book = recommend(text_users, count_recommended)

    st.write(f"""
     #### Модель нашла лучшие рекомендации для Вас🎉 :
     \n- ##### Это заняло всего {round(time.time() - start_time, 3)} сек.
    """)
    st.table(recommend_book)
    time.sleep(3)
    with st.sidebar:
        st.info("""
         #### Понравились ли Вам наши рекомендации? 
        """)

        col1, col2 = st.columns(2)

        with col1:
            st.button('**Да, очень**🔥', type='primary')
        with col2:
            st.button('**Нет,можно лучше**👎🏻', type='primary')