opex792 commited on
Commit
58ca2ed
·
verified ·
1 Parent(s): 551d569

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -4
app.py CHANGED
@@ -87,7 +87,7 @@ def setup_database():
87
  cur.execute("CREATE EXTENSION IF NOT EXISTS vector;")
88
 
89
  # Удаляем существующие таблицы если они есть
90
- cur.execute(f"DROP TABLE IF EXISTS {embeddings_table}, {query_cache_table};")
91
 
92
  # Создаем таблицу для хранения эмбеддингов фильмов
93
  cur.execute(f"""
@@ -299,6 +299,7 @@ def search_movies(query, top_k=10):
299
  ON CONFLICT (query_crc32) DO NOTHING
300
  """, (query_crc32, query, model_name, query_embedding.tolist()))
301
  conn.commit()
 
302
  except Exception as e:
303
  logging.error(f"Ошибка при сохранении эмбеддинга запроса: {e}")
304
  conn.rollback()
@@ -307,13 +308,19 @@ def search_movies(query, top_k=10):
307
  try:
308
  with conn.cursor() as cur:
309
  cur.execute(f"""
310
- SELECT m.movie_id, m.embedding <=> %s as distance
311
- FROM {embeddings_table} m
 
 
 
 
 
312
  ORDER BY distance ASC
313
  LIMIT %s
314
- """, (query_embedding.tolist(), top_k))
315
 
316
  results = cur.fetchall()
 
317
  except Exception as e:
318
  logging.error(f"Ошибка при выполнении поискового запроса: {e}")
319
  results = []
 
87
  cur.execute("CREATE EXTENSION IF NOT EXISTS vector;")
88
 
89
  # Удаляем существующие таблицы если они есть
90
+ # cur.execute(f"DROP TABLE IF EXISTS {embeddings_table}, {query_cache_table};")
91
 
92
  # Создаем таблицу для хранения эмбеддингов фильмов
93
  cur.execute(f"""
 
299
  ON CONFLICT (query_crc32) DO NOTHING
300
  """, (query_crc32, query, model_name, query_embedding.tolist()))
301
  conn.commit()
302
+ logging.info(f"Сохранен новый эмбеддинг запроса: {query}")
303
  except Exception as e:
304
  logging.error(f"Ошибка при сохранении эмбеддинга запроса: {e}")
305
  conn.rollback()
 
308
  try:
309
  with conn.cursor() as cur:
310
  cur.execute(f"""
311
+ WITH query_embedding AS (
312
+ SELECT embedding
313
+ FROM {query_cache_table}
314
+ WHERE query_crc32 = %s
315
+ )
316
+ SELECT m.movie_id, m.embedding <=> (SELECT embedding FROM query_embedding) as distance
317
+ FROM {embeddings_table} m, query_embedding
318
  ORDER BY distance ASC
319
  LIMIT %s
320
+ """, (query_crc32, top_k))
321
 
322
  results = cur.fetchall()
323
+ logging.info(f"Найдено {len(results)} результатов поиска.")
324
  except Exception as e:
325
  logging.error(f"Ошибка при выполнении поискового запроса: {e}")
326
  results = []