Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -140,10 +140,10 @@ def setup_nltk():
|
|
| 140 |
try:
|
| 141 |
nltk.download('punkt', quiet=True)
|
| 142 |
nltk.download('stopwords', quiet=True)
|
| 143 |
-
# Используем базовый токенизатор
|
| 144 |
from nltk.tokenize import word_tokenize
|
| 145 |
test_text = "тестовый текст"
|
| 146 |
-
tokens = word_tokenize(test_text)
|
| 147 |
logger.info(f"NLTK успешно инициализирован. Тестовая токенизация: {tokens}")
|
| 148 |
except Exception as e:
|
| 149 |
logger.warning(f"Ошибка инициализации NLTK: {e}")
|
|
@@ -473,6 +473,9 @@ def load_models():
|
|
| 473 |
logger.info("="*80)
|
| 474 |
logger.info(f"Начало загрузки модели: {EMBEDDING_MODEL}")
|
| 475 |
|
|
|
|
|
|
|
|
|
|
| 476 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 477 |
model = SentenceTransformer(
|
| 478 |
EMBEDDING_MODEL,
|
|
@@ -485,17 +488,6 @@ def load_models():
|
|
| 485 |
with torch.no_grad():
|
| 486 |
embeddings = model.encode(test_text)
|
| 487 |
|
| 488 |
-
logger.info(f"Модель загружена за {time.time()-start_time:.2f} сек")
|
| 489 |
-
logger.info(f"Размерность эмбеддингов: {model.get_sentence_embedding_dimension()}")
|
| 490 |
-
# 1. Загрузка SentenceTransformer
|
| 491 |
-
start_time = time.time()
|
| 492 |
-
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 493 |
-
model = SentenceTransformer(
|
| 494 |
-
EMBEDDING_MODEL,
|
| 495 |
-
device=device,
|
| 496 |
-
cache_folder=os.path.expanduser("~/.cache/huggingface/hub")
|
| 497 |
-
).to(device)
|
| 498 |
-
|
| 499 |
logger.info(f"Модель загружена за {time.time()-start_time:.2f} сек")
|
| 500 |
logger.info(f"Размерность эмбеддингов: {model.get_sentence_embedding_dimension()}")
|
| 501 |
|
|
@@ -526,19 +518,6 @@ def load_models():
|
|
| 526 |
st.error("Файл базы данных пуст!")
|
| 527 |
return model, faiss_index, None
|
| 528 |
|
| 529 |
-
# Проверка наличия таблицы content
|
| 530 |
-
try:
|
| 531 |
-
conn = sqlite3.connect(VECTOR_DB_PATH)
|
| 532 |
-
cursor = conn.cursor()
|
| 533 |
-
cursor.execute("SELECT COUNT(*) FROM content")
|
| 534 |
-
count = cursor.fetchone()[0]
|
| 535 |
-
conn.close()
|
| 536 |
-
logger.info(f"Таблица content содержит {count} записей")
|
| 537 |
-
except sqlite3.OperationalError as e:
|
| 538 |
-
logger.error(f"Ошибка при проверке таблицы content: {str(e)}")
|
| 539 |
-
st.error("В базе данных отсутствует необходимая таблица content")
|
| 540 |
-
return model, faiss_index, None
|
| 541 |
-
|
| 542 |
hybrid_search = HybridSearch(VECTOR_DB_PATH)
|
| 543 |
|
| 544 |
if hybrid_search and hybrid_search.bm25:
|
|
@@ -562,7 +541,7 @@ def load_models():
|
|
| 562 |
2. Логи в model_loading.log
|
| 563 |
3. Доступ к интернету для загрузки моделей
|
| 564 |
""")
|
| 565 |
-
|
| 566 |
|
| 567 |
# Загружаем модели с логированием
|
| 568 |
logger.info("="*80)
|
|
|
|
| 140 |
try:
|
| 141 |
nltk.download('punkt', quiet=True)
|
| 142 |
nltk.download('stopwords', quiet=True)
|
| 143 |
+
# Используем базовый токенизатор без специфичных для языка ресурсов
|
| 144 |
from nltk.tokenize import word_tokenize
|
| 145 |
test_text = "тестовый текст"
|
| 146 |
+
tokens = word_tokenize(test_text) # Убираем параметр language
|
| 147 |
logger.info(f"NLTK успешно инициализирован. Тестовая токенизация: {tokens}")
|
| 148 |
except Exception as e:
|
| 149 |
logger.warning(f"Ошибка инициализации NLTK: {e}")
|
|
|
|
| 473 |
logger.info("="*80)
|
| 474 |
logger.info(f"Начало загрузки модели: {EMBEDDING_MODEL}")
|
| 475 |
|
| 476 |
+
# Добавляем определение start_time
|
| 477 |
+
start_time = time.time()
|
| 478 |
+
|
| 479 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 480 |
model = SentenceTransformer(
|
| 481 |
EMBEDDING_MODEL,
|
|
|
|
| 488 |
with torch.no_grad():
|
| 489 |
embeddings = model.encode(test_text)
|
| 490 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 491 |
logger.info(f"Модель загружена за {time.time()-start_time:.2f} сек")
|
| 492 |
logger.info(f"Размерность эмбеддингов: {model.get_sentence_embedding_dimension()}")
|
| 493 |
|
|
|
|
| 518 |
st.error("Файл базы данных пуст!")
|
| 519 |
return model, faiss_index, None
|
| 520 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 521 |
hybrid_search = HybridSearch(VECTOR_DB_PATH)
|
| 522 |
|
| 523 |
if hybrid_search and hybrid_search.bm25:
|
|
|
|
| 541 |
2. Логи в model_loading.log
|
| 542 |
3. Доступ к интернету для загрузки моделей
|
| 543 |
""")
|
| 544 |
+
return None, None, None
|
| 545 |
|
| 546 |
# Загружаем модели с логированием
|
| 547 |
logger.info("="*80)
|