fix(openvino): исправлены баги compute_type, fallback и help text

- Зачем:
  - compute_type из конфига терялся как implicit, ломая выбор модели OpenVINO.
  - узкий матчинг ошибок пропускал реальные OpenVINO runtime failures.
  - ensure_model_available(device="openvino") падал из-за дефолта float32.
  - ensure_model_available не передавал compute_type_explicit, ломая large-v3 → fp16 override.
  - help по --compute-type не отражал дефолт для OpenVINO.
- Что:
  - ct_explicit учитывает и CLI-флаг, и конфиг-файл.
  - публичный API transcribe() передаёт compute_type_explicit=True.
  - _is_openvino_error() ловит любой RuntimeError.
  - ensure_model_available: дефолт compute_type из DEVICE_DEFAULTS, explicit прокинут в get_backend.
  - --compute-type help обновлён: float16 (CUDA) / int8 (OpenVINO) / float32 (CPU).
- Проверка:
  - uv run pytest -v — 124 passed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-21 23:45:27 +03:00
co-authored by Claude Opus 4.6
parent ee9e017083
commit 262bfd91d1
3 changed files with 50 additions and 7 deletions
+2 -2
View File
@@ -55,7 +55,7 @@ def main(
),
compute_type: str | None = typer.Option(
None, "--compute-type", show_default=False,
help="Тип вычислений [по умолч.: float16 (GPU) / float32 (CPU)]"
help="Тип вычислений [по умолч.: float16 (CUDA) / int8 (OpenVINO) / float32 (CPU)]"
),
verbose: bool = typer.Option(False, "--verbose", "-v", help="Подробный вывод"),
force: bool = typer.Option(False, "--force", "-f", help="Перезаписать существующие транскрипты"),
@@ -72,7 +72,7 @@ def main(
resolved_device = detect_device(defaults["device"])
defaults = apply_device_defaults(defaults, resolved_device, cli_values, config)
ct_explicit = compute_type is not None
ct_explicit = compute_type is not None or "compute_type" in config
expanded = expand_globs(files)
if not expanded: