- src/fetch.py: загрузка по URL (allowlist трекеров, защита от SSRF, cp1251)
- src/release.py: агрегат релиза, студии из заголовка раздачи (ПМ (LostFilm))
- predict --url, POST /predict {"url"}; ответ расширен, tracks сохранён
- export_onnx --quantize: tiny2 int8 29 МБ, parity 99.2-100%
- тесты (52 ok), docs/plan.md, docs; target/ убран из git
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
onnx_local — локальный инференс DUB-AI на Rust (без Python)
cargo build
# onnxruntime.dll грузится динамически; можно взять из pip-пакета onnxruntime
# (уже есть в .venv проекта) или из официального релиза onnxruntime
ORT_DYLIB_PATH=<путь>/onnxruntime.dll ./target/debug/dub-ai-onnx-local.exe \
"<путь к models/best-onnx>" "Перевод: Дублированный | MovieDalen"
Пример из корня проекта (Git Bash):
cd examples/rust/onnx_local
ORT_DYLIB_PATH="$(find ../../.venv -name onnxruntime.dll | head -1)" \
./target/debug/dub-ai-onnx-local.exe ../../models/best-onnx \
"Авторский (одноголосый закадровый) - Юрий Сербин"
Модель должна быть экспортирована заранее: python -m src.export_onnx
(создаст models/best-onnx/: model.onnx, tokenizer.json, label_maps.json,
aliases.json).
Крейты: ort 2.0.0-rc.15 (инференс), tokenizers (HF tokenizer.json),
serde_json (метки/алиасы). Постобработка повторяет src/predict.py:
argmax типа и 18+, первый B-I-прогон по offsets → текст спана →
канонизация по aliases.json.