Перейти к содержанию

Справочник CLI

Для кого: Пользователи, которым нужны точные имена команд. Задача: Перечислить текущий интерфейс CLI и безопасные примеры. Тип: Справочник

Установленный консольный скрипт называется dj-sim. Предполагается, что окружение Python уже активировано.

Основные команды

Просканировать папку:

powershell
dj-sim scan D:\Music --db .\data\library.sqlite

Проанализировать выбранные семейства:

powershell
mkdir .\backup
dj-sim prepare-sonara-release --db .\data\library.sqlite --backup-dir .\backup --confirm "PREPARE SONARA RELEASE"
dj-sim analyze --models sonara --sonara-outputs core,timeline,embedding,fingerprint --db .\data\library.sqlite
dj-sim analyze --models maest,mert,muq,clap --db .\data\library.sqlite

Запустить бэкенд:

powershell
dj-sim serve --host 127.0.0.1 --port 8765
dj-sim serve --host 127.0.0.1 --port 8765 --db .\data\library.sqlite

Без --db команда serve запускается без выбранной базы и не создаёт файлы SQLite. После запуска базу можно открыть или создать через диалог выбора либо /api/database/switch. С параметром --db сервер до запуска Uvicorn открывает существующий совместимый комплект v7 или создаёт новую пару Core и Artifacts по указанному пути.

Клиент React ещё не перенесён на API v7. Не считайте существующую сборку frontend/dist проверенным интерфейсом для v7.

Выполнить текстовый поиск CLAP:

powershell
dj-sim text-search "dark hypnotic techno, rolling bass" --limit 20 --db .\data\library.sqlite

Предварительно проверить перенос путей:

powershell
dj-sim relocate-library D:\Music E:\Music --db .\data\library.sqlite

Применить перенос:

powershell
dj-sim relocate-library D:\Music E:\Music --apply --db .\data\library.sqlite

Применение меняет только сохранённые пути SQLite и отклоняет отсутствующие целевые файлы и конфликты.

Рассчитать один опубликованный классификатор:

powershell
dj-sim analyze-classifier live_instrumentation --db .\data\library.sqlite

Рассчитать выбранные или все совместимые классификаторы:

powershell
dj-sim analyze-classifiers --classifiers live_instrumentation,voice_presence --db .\data\library.sqlite
dj-sim analyze-classifiers --db .\data\library.sqlite

Запустить конвейер с фиксированным порядком:

powershell
dj-sim analyze-pipeline --stages sonara,ml,classifiers --db .\data\library.sqlite

Проверить среду:

powershell
dj-sim doctor

Обслуживание комплекта и релиза

Среда Python принимает только чистые комплекты схемы v7. Для нового пути она создаёт Core и обязательную соседнюю базу Artifacts, но не обновляет существующую v6. Команд migrate-v7 и migrate-schema-v7 больше нет.

Подготовьте выбранный комплект для загруженного релиза SONARA:

powershell
dj-sim prepare-sonara-release --db .\data\library.sqlite --backup-dir .\backup --confirm "PREPARE SONARA RELEASE"

Команда требует существующий доступный для записи каталог резервных копий и точную фразу подтверждения. Она сама определяет четыре контракта и хеш релиза, проверяет пару копий Core и Artifacts и сохраняет квитанцию для продолжения после прерывания. Передать идентичность или выбрать результаты вручную нельзя.

Параметры анализа

dj-sim analyze поддерживает:

ПараметрЗначения
--modelsразделённые запятыми sonara, maest, mert, muq, clap
--limitнеобязательное целое; не указывайте для всей библиотеки
--deviceauto, cpu, cuda
--top-k1..10 меток MAEST
--track-batch-size1..64 декодированных треков в партии, по умолчанию 8
--inference-batch-size1..128 примеров за проход модели, по умолчанию 16
--diagnosticsдиагностика декодирования и времени партий в файловом журнале
--sonara-outputsразделённые запятыми core, timeline, embedding, fingerprint; по умолчанию core
--sonara-batch-size1..16 путей, одновременно обрабатываемых нативным анализом, по умолчанию 8

Обычный анализ SONARA материализует только core, но активный релиз всегда содержит четыре неизменяемых контракта. Чтобы материализовать все четыре результата, используйте --sonara-outputs core,timeline,embedding,fingerprint. Следующая задача может выбрать другой отсутствующий результат того же активного релиза, не меняя его идентичность. core хранится в Core, а остальные три результата — в отдельных таблицах обязательной базы Artifacts. Эмбеддинги MAEST/MERT/MuQ/CLAP также находятся в отдельных таблицах Artifacts.

Точный профиль запроса каждого результата и нативный путь декодирования и выполнения входят в контракт SONARA. Неподготовленный релиз возвращает конфликт с требованием подготовки. Запустите prepare-sonara-release, после чего частичное актуальное покрытие можно продолжать по контрактам.

analyze-classifiers создаёт отдельную задачу, которая работает только с базой. Без --classifiers выбираются все совместимые опубликованные артефакты. analyze-pipeline принимает те же настройки этапов и всегда выполняет этапы SONARA, ML, CLASSIFIERS именно в таком порядке; --ml-models не может содержать SONARA.

Полный порядок описан в подготовке и пересоздании релиза SONARA.

Параметры текстового поиска

dj-sim text-search поддерживает:

ПараметрЗначение
queryобязательный текстовый запрос
--limitчисло результатов 1..500
--min-similarityнеобязательный порог
--deviceauto, cpu или cuda для текстового эмбеддинга CLAP
--use-ann-indexявно включить постоянный индекс CLAP
--index-dirнестандартный каталог индекса

Если индекс недоступен, команда предупреждает и выполняет точный поиск.

Команды постоянных индексов

powershell
dj-sim index build --model clap --db .\data\library.sqlite
dj-sim index verify --model clap --db .\data\library.sqlite
dj-sim index benchmark --model clap --db .\data\library.sqlite
dj-sim index clear --model clap --db .\data\library.sqlite

Доступные модели: maest, mert, muq, clap. Для build, verify и benchmark параметр --model обязателен; в clear его можно не указывать только для очистки всех созданных индексов.

Команды оценки

Группа eval предназначена для локальной диагностики и отчётов обратной связи:

  • export-candidates;
  • export-weighted-candidates;
  • export-seed-sample;
  • import-pair-feedback;
  • import-transition-feedback;
  • report;
  • run-ablation;
  • build-score-profile;
  • run-calibration;
  • optimize-score-profile;
  • profile-sources;
  • apply-score-profile;
  • sweep-risk-penalty.

Команды требуют актуальную схему SQLite и работают с локальной базой и файлами отчётов.

Диагностика классификаторов

powershell
dj-sim classifier calibration-report --classifier live_instrumentation --db .\data\library.sqlite
powershell
dj-sim classifier suggest-labels --classifier live_instrumentation --limit 25 --db .\data\library.sqlite

Отдельные инструменты

Rhythm Lab:

powershell
python tools\rhythm-lab\rhythm_lab_cli.py serve --source .\data\library.sqlite --labels tools\rhythm-lab\data\rhythm_lab.sqlite
python tools\rhythm-lab\rhythm_lab_cli.py train --profile live_instrumentation --source .\data\library.sqlite --labels tools\rhythm-lab\data\rhythm_lab.sqlite
python tools\rhythm-lab\rhythm_lab_cli.py promote --profile live_instrumentation --labels tools\rhythm-lab\data\rhythm_lab.sqlite

Предварительная проверка Audio Doctor:

powershell
python tools\audio-doctor\audio_doctor_cli.py --db .\data\library.sqlite

Отчёт Audio Dedup:

powershell
python tools\audio-dedup\audio_dedup_cli.py --db .\data\library.sqlite --root D:\Music --preset safe

Оптимизация базы:

powershell
python scripts\optimize_database.py --db .\data\library.sqlite

Кратко о безопасности

  • scan, analyze, text-search, serve, doctor, index и команды формирования отчётов оценки не переписывают аудио.
  • relocate-library --apply меняет только пути SQLite.
  • Audio Doctor --apply может переписывать исправимые файлы.
  • Audio Dedup --apply может удалять файлы.
  • Запись жанрового тега MAEST доступна через приложение и API, но не как верхнеуровневая команда dj-sim.

Документация локального инструмента анализа музыкальной библиотеки.