feat(config): добавлена поддержка устройства openvino в конфиге и auto-detect

- Зачем:
  - подготовка к OpenVINO бэкенду: config и utils должны знать о новом устройстве.
- Что:
  - config.py: openvino добавлен в _VALID_DEVICES и DEVICE_DEFAULTS (model=medium, compute_type=int8).
  - utils.py: detect_device() расширен цепочкой CUDA → OpenVINO → CPU; _is_openvino_available() проверяет архитектуру (x86_64/AMD64) и наличие openvino_genai.
  - cli.py: --device help text обновлён (auto|cpu|cuda|openvino).
  - добавлены тесты: config с openvino device, device defaults, auto-detect приоритет.
- Проверка:
  - uv run pytest -v — 103 passed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-21 23:22:13 +03:00
co-authored by Claude Opus 4.6
parent 4c5399c2fc
commit fae25a7fb3
5 changed files with 63 additions and 4 deletions
+2 -1
View File
@@ -19,11 +19,12 @@ HARDCODED_DEFAULTS: dict[str, str] = {
DEVICE_DEFAULTS: dict[str, dict[str, str]] = {
"cuda": {"model": "medium", "compute_type": "float16"},
"cpu": {"model": "medium", "compute_type": "float32"},
"openvino": {"model": "medium", "compute_type": "int8"},
}
# Одно место правды для допустимых ключей конфига
_VALID_KEYS = set(HARDCODED_DEFAULTS)
_VALID_DEVICES = {"auto", "cpu", "cuda"}
_VALID_DEVICES = {"auto", "cpu", "cuda", "openvino"}
def find_config_file() -> Path | None: