opex792 commited on
Commit
bbf6f5b
·
verified ·
1 Parent(s): 53feba3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -14
app.py CHANGED
@@ -1,10 +1,9 @@
1
  import gradio as gr
2
- from sentence_transformers import SentenceTransformer, util
3
  import os
4
  import time
5
  import threading
6
  import queue
7
- import torch
8
  import psycopg2
9
  import zlib
10
  import numpy as np
@@ -152,18 +151,20 @@ def get_movies_without_embeddings():
152
  # Получаем список всех фильмов из таблицы Movies с подготовленной строкой
153
  cur.execute(f"""
154
  SELECT id, data,
155
- 'Название: ' || data->>'name' ||
156
- '\\nГод: ' || data->>'year' ||
157
- '\\nЖанры: ' || (SELECT string_agg(genre->>'name', ', ') FROM jsonb_array_elements(data->'genres') AS genre) ||
158
- '\\nОписание: ' || COALESCE(data->>'description', '')
159
- AS prepared_string
 
160
  FROM "{movies_table}"
161
  """)
162
  all_movies = cur.fetchall()
163
 
164
  # Фильтруем только те фильмы, которых нет в таблице эмбеддингов
165
- for movie_id, movie_data, prepared_string in all_movies:
166
  if movie_id not in existing_ids:
 
167
  movies_to_process.append((movie_id, movie_data, prepared_string))
168
 
169
  logging.info(f"Найдено {len(movies_to_process)} фильмов для обработки.")
@@ -286,15 +287,17 @@ def get_movie_data_from_db(conn, movie_ids):
286
  with conn.cursor() as cur:
287
  cur.execute(f"""
288
  SELECT id, data,
289
- 'Название: ' || data->>'name' ||
290
- '\\nГод: ' || data->>'year' ||
291
- '\\nЖанры: ' || (SELECT string_agg(genre->>'name', ', ') FROM jsonb_array_elements(data->'genres') AS genre) ||
292
- '\\nОписание: ' || COALESCE(data->>'description', '')
293
- AS prepared_string
 
294
  FROM "{movies_table}"
295
  WHERE id IN %s
296
  """, (tuple(movie_ids),))
297
- for movie_id, movie_data, prepared_string in cur.fetchall():
 
298
  movie_data_dict[movie_id] = (movie_data, prepared_string)
299
  except Exception as e:
300
  logging.error(f"Ошибка при получении данных фильмов из БД: {e}")
 
1
  import gradio as gr
2
+ from sentence_transformers import SentenceTransformer
3
  import os
4
  import time
5
  import threading
6
  import queue
 
7
  import psycopg2
8
  import zlib
9
  import numpy as np
 
151
  # Получаем список всех фильмов из таблицы Movies с подготовленной строкой
152
  cur.execute(f"""
153
  SELECT id, data,
154
+ jsonb_build_object(
155
+ 'Название', data->>'name',
156
+ 'Год', data->>'year',
157
+ 'Жанры', (SELECT string_agg(genre->>'name', ', ') FROM jsonb_array_elements(data->'genres') AS genre),
158
+ 'Описание', COALESCE(data->>'description', '')
159
+ ) AS prepared_json
160
  FROM "{movies_table}"
161
  """)
162
  all_movies = cur.fetchall()
163
 
164
  # Фильтруем только те фильмы, которых нет в таблице эмбеддингов
165
+ for movie_id, movie_data, prepared_json in all_movies:
166
  if movie_id not in existing_ids:
167
+ prepared_string = f"Название: {prepared_json['Название']}\nГод: {prepared_json['Год']}\nЖанры: {prepared_json['Жанры']}\nОписание: {prepared_json['Описание']}"
168
  movies_to_process.append((movie_id, movie_data, prepared_string))
169
 
170
  logging.info(f"Найдено {len(movies_to_process)} фильмов для обработки.")
 
287
  with conn.cursor() as cur:
288
  cur.execute(f"""
289
  SELECT id, data,
290
+ jsonb_build_object(
291
+ 'Название', data->>'name',
292
+ 'Год', data->>'year',
293
+ 'Жанры', (SELECT string_agg(genre->>'name', ', ') FROM jsonb_array_elements(data->'genres') AS genre),
294
+ 'Описание', COALESCE(data->>'description', '')
295
+ ) AS prepared_json
296
  FROM "{movies_table}"
297
  WHERE id IN %s
298
  """, (tuple(movie_ids),))
299
+ for movie_id, movie_data, prepared_json in cur.fetchall():
300
+ prepared_string = f"Название: {prepared_json['Название']}\nГод: {prepared_json['Год']}\nЖанры: {prepared_json['Жанры']}\nОписание: {prepared_json['Описание']}"
301
  movie_data_dict[movie_id] = (movie_data, prepared_string)
302
  except Exception as e:
303
  logging.error(f"Ошибка при получении данных фильмов из БД: {e}")