gigastt-pro

Документация

В контур переносят бинарник, веса и конфиг

Бандл собирается один раз на машине с доступом к GitVerse. На целевой нужен только диск: ни сети, ни git, ни git-lfs.

Что едет на носителе

  • Бинарник из релиза — tarball, .deb или .rpm, рядом лежит SHA256SUMS.txt.
  • Веса STT — candle_int8/encoder.safetensors, decoder.safetensors, joiner.safetensors и v3_vocab.txt, около 225 МБ. Вместо них подойдёт компактный вариант candle_compact/ (~99 МБ, скачивается командой gigastt download --compact).
  • Опциональные веса — punct/, vad/candle/, speaker/, emo/.
  • Конфиг — /etc/gigastt-pro/config.toml, если ваш отличается от поставляемого.
  • Source ONNX и FP32 candle/ в product-бандл не входят: первые — вход offline-конвертеров, вторые — dev-формат для локальной разработки.

Если бандл готовим мы, это одна команда ./scripts/prepare_customer_kit.sh. Ниже — ручная процедура для тех, кто собирает сам.

Машина с GitVerse

shell
gigastt download
# пунктуация и VAD — опционально:
gigastt download --with-punct --with-vad

scripts/prepare_airgap_models.sh \
  --src ~/.gigastt/models \
  --out ./gigastt-pro-models \
  --with-rupunct --with-vad --tar

download кладёт product INT8 в ~/.gigastt/models/. Скрипт проверяет обязательные файлы, копирует бандл и пишет рядом SHA256SUMS.txt; флаг --tar добавляет архив gigastt-pro-models.tar.gz.

После переноса на целевую машину бандл проверяется целиком:

shell
cd gigastt-pro-models
sha256sum -c SHA256SUMS.txt

Все строки должны закончиться на OK. Хотя бы один FAILED означает повреждение при переносе — скопируйте файлы заново, битые веса не ставьте.

Целевая машина

shell
sudo mkdir -p /var/lib/gigastt/models
sudo cp -r candle_int8 v3_vocab.txt /var/lib/gigastt/models/
sudo chown -R gigastt:gigastt /var/lib/gigastt/models

gigastt serve --model-dir /var/lib/gigastt/models
curl http://127.0.0.1:9876/health

serve по умолчанию работает offline и не открывает исходящих соединений: если candle_int8/ на месте нет, процесс завершится ошибкой. Флаг --allow-download существует для стенда и у заказчика не включается. Ответ /health со статусом ok — веса загружены, сервер принимает запросы.

integrity.json не копируйте

Манифест с машины подготовки может ссылаться на файлы, которых нет в бандле, и тогда движок ответит integrity_violation. Оставьте каталог без манифеста: при первом запуске он создастся заново по фактически лежащим весам и дальше будет проверяться при каждой загрузке модели.

Unit, proxy и config.toml — на странице поставки

Контур поднят, когда /health отвечает ok, а по файрволу видно, что процесс никуда не ходит.