Update app.py
Browse files
app.py
CHANGED
@@ -1,10 +1,9 @@
|
|
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 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 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
|
|
160 |
FROM "{movies_table}"
|
161 |
""")
|
162 |
all_movies = cur.fetchall()
|
163 |
|
164 |
# Фильтруем только те фильмы, которых нет в таблице эмбеддингов
|
165 |
-
for movie_id, movie_data,
|
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 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
|
|
294 |
FROM "{movies_table}"
|
295 |
WHERE id IN %s
|
296 |
""", (tuple(movie_ids),))
|
297 |
-
for movie_id, movie_data,
|
|
|
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}")
|