Справочник CLI
Для кого: Пользователи, которым нужны точные имена команд. Задача: Перечислить текущий интерфейс CLI и безопасные примеры. Тип: Справочник
Установленный консольный скрипт называется dj-sim. Предполагается, что окружение Python уже активировано.
Основные команды
Просканировать папку:
dj-sim scan D:\Music --db .\data\library.sqliteПроанализировать выбранные семейства:
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Запустить бэкенд:
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:
dj-sim text-search "dark hypnotic techno, rolling bass" --limit 20 --db .\data\library.sqliteПредварительно проверить перенос путей:
dj-sim relocate-library D:\Music E:\Music --db .\data\library.sqliteПрименить перенос:
dj-sim relocate-library D:\Music E:\Music --apply --db .\data\library.sqliteПрименение меняет только сохранённые пути SQLite и отклоняет отсутствующие целевые файлы и конфликты.
Рассчитать один опубликованный классификатор:
dj-sim analyze-classifier live_instrumentation --db .\data\library.sqliteРассчитать выбранные или все совместимые классификаторы:
dj-sim analyze-classifiers --classifiers live_instrumentation,voice_presence --db .\data\library.sqlite
dj-sim analyze-classifiers --db .\data\library.sqliteЗапустить конвейер с фиксированным порядком:
dj-sim analyze-pipeline --stages sonara,ml,classifiers --db .\data\library.sqliteПроверить среду:
dj-sim doctorОбслуживание комплекта и релиза
Среда Python принимает только чистые комплекты схемы v7. Для нового пути она создаёт Core и обязательную соседнюю базу Artifacts, но не обновляет существующую v6. Команд migrate-v7 и migrate-schema-v7 больше нет.
Подготовьте выбранный комплект для загруженного релиза SONARA:
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 | необязательное целое; не указывайте для всей библиотеки |
--device | auto, cpu, cuda |
--top-k | 1..10 меток MAEST |
--track-batch-size | 1..64 декодированных треков в партии, по умолчанию 8 |
--inference-batch-size | 1..128 примеров за проход модели, по умолчанию 16 |
--diagnostics | диагностика декодирования и времени партий в файловом журнале |
--sonara-outputs | разделённые запятыми core, timeline, embedding, fingerprint; по умолчанию core |
--sonara-batch-size | 1..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 | необязательный порог |
--device | auto, cpu или cuda для текстового эмбеддинга CLAP |
--use-ann-index | явно включить постоянный индекс CLAP |
--index-dir | нестандартный каталог индекса |
Если индекс недоступен, команда предупреждает и выполняет точный поиск.
Команды постоянных индексов
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 и работают с локальной базой и файлами отчётов.
Диагностика классификаторов
dj-sim classifier calibration-report --classifier live_instrumentation --db .\data\library.sqlitedj-sim classifier suggest-labels --classifier live_instrumentation --limit 25 --db .\data\library.sqliteОтдельные инструменты
Rhythm Lab:
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:
python tools\audio-doctor\audio_doctor_cli.py --db .\data\library.sqliteОтчёт Audio Dedup:
python tools\audio-dedup\audio_dedup_cli.py --db .\data\library.sqlite --root D:\Music --preset safeОптимизация базы:
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.