# eval/ — тяжёлый экстра: эмбеддинг-бенч памяти. Ставится ПОВЕРХ requirements.txt: # .venv/bin/pip install -r requirements-embed.txt # # Вынесено отдельно по одной причине — это ~2.5 ГБ ради ОДНОГО скрипта. Единственный # потребитель — retrieval_bench.py, и все три импорта у него ФУНКЦИОНАЛЬНЫЕ, а не # модульные, поэтому без этого файла падает ровно он и ровно на входе в эти функции: # retrieval_bench.py:93 from sklearn.metrics import roc_auc_score (в threshold_analysis) # retrieval_bench.py:153 from sentence_transformers import ... (в run_embed_model) # retrieval_bench.py:223 from rank_bm25 import BM25Okapi (в run_bm25) # Модульный там только `import numpy` (:34) — он уже в базовом наборе. # # torch НИГДЕ не импортируется напрямую (проверено обходом AST по всем 158 файлам) — # приходит транзитивно через sentence-transformers, поэтому в базовом файле ему не место. # # ⚠ ВЕРСИИ НЕ ПРОСТАВЛЕНЫ НАМЕРЕННО: этих пакетов в стенде нет # (import sklearn / sentence_transformers / rank_bm25 / torch → ModuleNotFoundError), # а версия из памяти — выдумка. Пины проставить с ПЕРВОЙ реальной установки. # # ⚠ CPU-сборка torch ставится с --extra-index-url https://download.pytorch.org/whl/cpu # — решать при первом реальном прогоне, не заранее. # # Под CPython 3.14 колёса есть у всех (сверено на PyPI 02.08.2026: torch # cp314-manylinux_2_28_x86_64, scikit-learn cp314, sentence-transformers и rank_bm25 — # чистый Python), так что 3.14 сам по себе не блокер. sentence-transformers torch scikit-learn rank_bm25