HaggiVaggi commited on
Commit
6696b4f
1 Parent(s): be3d993

Update pages/1 Подбор фильмов по описанию✏️🔍.py

Browse files
pages/1 Подбор фильмов по описанию✏️🔍.py CHANGED
@@ -20,9 +20,6 @@ def embedding_and_index():
20
  def load_model():
21
  model = AutoModel.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
22
  return model
23
-
24
-
25
-
26
 
27
 
28
  st.header("Подбор фильмов по описанию ✏️🔍")
@@ -35,39 +32,7 @@ model = load_model()
35
 
36
  # Пользовательский ввод
37
  user_input = st.text_input("Введите описание фильма:", value="", help="Чем подробнее будет ваше описание, тем точнее мы сможем подобрать для вас фильм 🤗'")
38
-
39
- genre_list = ['анимация',
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
  user_select_genre = st.multiselect('Выберите жанр', genre_list)
73
 
@@ -79,6 +44,7 @@ if st.button("Искать🔍🎦"):
79
  outputs = model(**tokens)
80
  embeddings = outputs.last_hidden_state.mean(dim=1)
81
  return embeddings.cpu().numpy().astype('float32')
 
82
  # Векторизация введенного запроса с использованием переданных tokenizer и model
83
  input_embedding = encode_description(user_input, tokenizer, model)
84
 
@@ -96,36 +62,34 @@ if st.button("Искать🔍🎦"):
96
  genre_mask_i = df['genre'].str.contains(genres_selected.iloc[i])
97
  genre_mask = genre_mask & genre_mask_i
98
  recs = recs[genre_mask]
99
-
100
- if recs.empty:
101
- st.subheader("Подходящих фильмов не найдено, ослабьте фильтры 😔:")
102
- else:
103
-
104
 
105
- # Вывод рекомендованных фильмов с изображениями
 
106
  st.subheader("Рекомендованные фильмы 🎉:")
107
- for i in range(5):
108
  st.markdown(f"<span style='font-size:{20}px; color:purple'>{recs['movie_title'].iloc[i]}</span>", unsafe_allow_html=True)
109
- # Создаем две колонки: одну для текста, другую для изображения
110
  col1, col2 = st.columns([2, 1])
111
-
112
- # В колонке отображаем название фильма, описание, роли и ссылку
113
  col1.info(recs['description'].iloc[i])
114
  col1.markdown(f"**В ролях:** {recs['actors'].iloc[i]}")
115
  col1.markdown(f"**Фильм можно посмотреть [здесь]({recs['page_url'].iloc[i]})**")
116
-
117
- # В колонке отображаем изображение
118
  col2.image(recs['image_url'].iloc[i], caption=recs['movie_title'].iloc[i], width=200)
 
119
  with st.sidebar:
120
  st.info("""
121
- #### Мы смогли помочь вам с выбором?
122
- """)
123
  feedback = st.text_input('Поделитесь с нами вашим мнением')
124
 
125
  feedback_button = st.button("Отправить отзыв", key="feedback_button")
126
 
127
  if feedback_button and feedback:
128
- feedback_container.success("Спасибо, каждый день мы стараемся быть лучше для вас 💟")
129
  elif feedback_button:
130
- feedback_container.warning("Пожалуйста, введите отзыв перед отправкой.")
131
-
 
 
20
  def load_model():
21
  model = AutoModel.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
22
  return model
 
 
 
23
 
24
 
25
  st.header("Подбор фильмов по описанию ✏️🔍")
 
32
 
33
  # Пользовательский ввод
34
  user_input = st.text_input("Введите описание фильма:", value="", help="Чем подробнее будет ваше описание, тем точнее мы сможем подобрать для вас фильм 🤗'")
35
+ genre_list = ['анимация', 'аниме', 'балет', 'биография', 'боевик', 'вестерн', 'военный', 'детектив', 'детский', 'документальный', 'драма', 'исторический', 'катастрофа', 'комедия', 'концерт', 'короткометражный', 'криминал', 'мелодрама', 'мистика', 'музыка', 'мюзикл', 'нуар', 'приключения', 'сборник', 'семейный', 'сказка', 'спорт', 'триллер', 'ужасы', 'фантастика', 'фэнтези', 'эротика']
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  user_select_genre = st.multiselect('Выберите жанр', genre_list)
38
 
 
44
  outputs = model(**tokens)
45
  embeddings = outputs.last_hidden_state.mean(dim=1)
46
  return embeddings.cpu().numpy().astype('float32')
47
+
48
  # Векторизация введенного запроса с использованием переданных tokenizer и model
49
  input_embedding = encode_description(user_input, tokenizer, model)
50
 
 
62
  genre_mask_i = df['genre'].str.contains(genres_selected.iloc[i])
63
  genre_mask = genre_mask & genre_mask_i
64
  recs = recs[genre_mask]
 
 
 
 
 
65
 
66
+ if not recs.empty:
67
+ # Вывод рекомендованных фильмов с изображениями
68
  st.subheader("Рекомендованные фильмы 🎉:")
69
+ for i in range(min(5, len(recs))):
70
  st.markdown(f"<span style='font-size:{20}px; color:purple'>{recs['movie_title'].iloc[i]}</span>", unsafe_allow_html=True)
71
+ # Создаем две колонки: одну для текста, другую для изображения
72
  col1, col2 = st.columns([2, 1])
73
+
74
+ # В колонке отображаем название фильма, описание, роли и ссылку
75
  col1.info(recs['description'].iloc[i])
76
  col1.markdown(f"**В ролях:** {recs['actors'].iloc[i]}")
77
  col1.markdown(f"**Фильм можно посмотреть [здесь]({recs['page_url'].iloc[i]})**")
78
+
79
+ # В колонке отображаем изображение
80
  col2.image(recs['image_url'].iloc[i], caption=recs['movie_title'].iloc[i], width=200)
81
+
82
  with st.sidebar:
83
  st.info("""
84
+ #### Мы смогли помочь вам с выбором?
85
+ """)
86
  feedback = st.text_input('Поделитесь с нами вашим мнением')
87
 
88
  feedback_button = st.button("Отправить отзыв", key="feedback_button")
89
 
90
  if feedback_button and feedback:
91
+ st.success("Спасибо, каждый день мы стараемся быть лучше для вас 💟")
92
  elif feedback_button:
93
+ st.warning("Пожалуйста, введите отзыв перед отправкой.")
94
+ else:
95
+ st.subheader("Подходящих фильмов не найдено, ослабьте фильтры 😔:")