# Download Model

Цель: загрузить модель из Hugging Face в локальное хранилище, не помещая веса модели в git.

## Install Dependencies

```powershell
pip install -r requirements.txt
```

## Dry Run

```powershell
python scripts/download_hf_model.py qwen3-4b-instruct-2507 --dry-run
```

## Download

На хосте, где доступен путь `/models`:

```powershell
python scripts/download_hf_model.py qwen3-4b-instruct-2507
```

Если команда запускается на Windows, а в model card указан Linux-путь `/models/...`, реальная загрузка без `--local-dir` будет остановлена. Это защита от случайной загрузки в неправильный локальный каталог.

Для закрытой модели токен передается через окружение:

```powershell
$env:HF_TOKEN="..."
python scripts/download_hf_model.py qwen3-4b-instruct-2507
```

Не сохраняйте токен в репозитории, `.env` или model card.

## Resume Large Files

Если сеть рвет большие файлы, используйте range-загрузчик. Он докачивает файл с текущего размера и проверяет итоговый размер по Hugging Face metadata.

```powershell
python scripts/download_hf_range.py qwen3-4b-instruct-2507 `
  --local-dir models/base/qwen3-4b-instruct-2507 `
  --allow-file model-00001-of-00003.safetensors `
  --allow-file model-00002-of-00003.safetensors `
  --chunk-size 16mb `
  --retries 20
```

Эту команду можно запускать повторно до полного завершения.

## Override Path

Если нужно скачать в другой каталог:

```powershell
python scripts/download_hf_model.py qwen3-4b-instruct-2507 --local-dir D:\models\base\qwen3-4b-instruct-2507
```

## Registry Index

После добавления или изменения карточек моделей:

```powershell
python scripts/build_model_index.py
```

## Check Local Storage

Проверить, какие модели полностью скачаны, частично скачаны или отсутствуют:

```powershell
python scripts/check_model_storage.py --print
```

В обычном `check_all` эта проверка работает как warning, потому что часть моделей и адаптеров может быть запланирована, но еще не загружена.

Для текущего состояния всей платформы:

```powershell
python scripts/collect_platform_status.py --print
```
