Постоянные индексы ANN
Для кого: Пользователи с большой проанализированной библиотекой и частыми векторными запросами. Задача: Создать, проверить, измерить, использовать и очистить необязательные вспомогательные индексы. Тип: Руководство
Постоянные индексы ANN — создаваемые вспомогательные файлы для сохранённых эмбеддингов. Они необязательны: точный поиск продолжает работать без них.
Что хранится
По умолчанию индексы находятся рядом с выбранной базой SQLite:
.dj-track-similarity-indexes/Они содержат созданные файлы векторного индекса и манифесты для одного семейства моделей: maest, mert, muq или clap. Аудиофайлы не копируются, новые строки SQLite не создаются.
Установите необязательный движок
Дополнительный набор ann устанавливает hnswlib:
python -m pip install -e ".[ann,dev]"Постоянный движок CLI — hnswlib.
Создайте и проверьте
dj-sim index build --model clap --db .\data\library.sqlitedj-sim index verify --model clap --db .\data\library.sqliteАктивное семейство эмбеддингов выбирается обязательным параметром --model.
Необязательные параметры сборки:
dj-sim index build --model clap --backend hnswlib --ef-construction 200 --m 16 --ef-search 100 --db .\data\library.sqliteИзмерьте полноту
dj-sim index benchmark --model clap --recall-k 50 --seed-count 20 --db .\data\library.sqliteСравнительный тест сопоставляет индекс с точным поиском и сообщает, пройден ли выбранный порог.
Используйте в текстовом поиске CLAP
В CLI индекс включается явно:
dj-sim text-search "warm dub techno pads" --use-ann-index --db .\data\library.sqliteЕсли вспомогательный файл отсутствует, устарел или не поддерживается, команда предупреждает и возвращается к точному поиску.
Пересобирайте после изменения эмбеддингов
Пересоберите индекс после изменения анализа выбранной модели, сброса эмбеддингов, замены базы или перемещения каталога индекса.
Очистите созданные файлы
Одно семейство моделей:
dj-sim index clear --model clap --db .\data\library.sqliteВсе вспомогательные индексы в разрешённом каталоге:
dj-sim index clear --db .\data\library.sqliteЭти индексы — создаваемое локальное состояние, которое не следует добавлять в Git.