Table of contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Конфигурация
Сервер GigaAM-Multilingual ASR настраивается исключительно через переменные окружения. Все параметры читаются при старте процесса в модуле server.py и определяют поведение конвейера распознавания, политику доступа и сетевые параметры.
Ниже приведён полный перечень поддерживаемых переменных, сгруппированных по функциональному назначению.
Модели и каталоги данных
Эти переменные указывают, какие модели загружать и откуда их читать. В Docker-образе каталоги моделей монтируются с хоста (см. Установка и запуск).
| Переменная | По умолчанию | Описание |
|---|---|---|
MODEL_DIR |
models/gigaam-onnx (локально) / /models/gigaam-onnx (Docker) |
Корневой каталог для ASR-моделей. Каждая модель размещается в отдельной подпапке {MODEL_DIR}/{имя}/. |
VAD_DIR |
models/vad (локально) / /models/vad (Docker) |
Каталог, содержащий файл silero_vad.onnx и config.json. |
MODELS |
gigaam-multilingual-large-ctc,gigaam-multilingual-ctc |
Список моделей, разделяемый запятыми. Формат записи: alias=имя_в_onnx_asr или просто имя (тогда alias совпадает с именем). Каждая указанная модель загружается при старте. Неизвестное имя модели в запросе приводит к ошибке 404. |
QUANTIZATION |
int8 |
Режим квантизации ONNX-модели. Допустимые значения: int8 (рекомендуется) или пустая строка (fp32). |
Пример настройки одной модели
Если объём видеопамяти ограничен, можно загрузить только большую модель:
MODELS=gigaam-multilingual-large-ctc
Или использовать собственный alias для совместимости с существующими клиентами:
MODELS=my-large-model=gigaam-multilingual-large-ctc,my-small-model=gigaam-multilingual-ctc
В этом случае в запросах к API следует указывать model=my-large-model.
Производительность и обработка аудио
Параметры, влияющие на скорость обработки и способ сегментации длинных записей. Подробности о выборе размера модели и оценке RTF см. в разделе Производительность.
| Переменная | По умолчанию | Описание |
|---|---|---|
GIGAAm_CUDA |
auto |
Выбор устройства выполнения. Значения: auto (автоопределение CUDA), 1 (принудительно GPU), 0 (только CPU). |
CHUNK_SECONDS |
300 |
Порог активации VAD для длинных записей. Если длительность аудио превышает это значение (в секундах), используется Silero VAD для сегментации. Значение 0 отключает VAD — вся запись обрабатывается одним блоком. |
MAX_DURATION |
3600 |
Максимально допустимая длительность аудио в секундах. Запросы с более длинным файлом отклоняются. |
FFMPEG_BIN |
(не задано) | Путь к исполняемому файлу ffmpeg. Если не задано, сервер пытается найти ffmpeg в PATH или использовать пакет imageio-ffmpeg. |
Авторизация
Механизм проверки Bearer-токенов. Если авторизация включена, каждый запрос к защищённым конечным точкам должен содержать заголовок Authorization: Bearer <токен>.
| Переменная | По умолчанию | Описание |
|---|---|---|
API_KEYS |
(пусто) | Список допустимых токенов, разделённых запятыми. Если переменная пуста или не задана, проверка авторизации отключена, и сервер принимает любые запросы. |
Пример включения авторизации
API_KEYS=key-alpha,key-beta
Теперь запросы должны выглядеть так:
curl http://localhost:8000/v1/audio/transcriptions \
-H "Authorization: Bearer key-alpha" \
-F file=@speech.mp3 \
-F model=gigaam-multilingual-large-ctc
Подробнее о формате запросов и ответах см. в Справочнике API.
CORS (Cross-Origin Resource Sharing)
Настройка политик межсайтовых запросов. Актуально при использовании браузера или прокси-сервисов (например, LiteLLM), которые выполняют preflight-запросы OPTIONS.
| Переменная | По умолчанию | Описание |
|---|---|---|
CORS_ORIGINS |
* |
Политика CORS. Значения: * — разрешены все origin; список origin через запятую (например, https://example.com,https://app.example.com); пустая строка — CORS полностью отключён. |
Пример строгой политики
CORS_ORIGINS=https://frontend.mycompany.kz,https://admin.mycompany.kz
Сетевые параметры
Базовые настройки HTTP-сервера.
| Переменная | По умолчанию | Описание |
|---|---|---|
HOST |
0.0.0.0 |
Адрес привязки сокета. |
PORT |
8000 |
Порт прослушивания. |
Пример полного конфигурационного блока (docker-compose)
Ниже приведён фрагмент файла docker-compose.yml с типичной настройкой для производственной среды:
services:
gigaam-asr:
image: git.maydayoffice.kz/maydayoffice/gigaam-asr-server:v0.1.4
ports:
- "43000:8000"
environment:
# Устройства и модели
GIGAAm_CUDA: "1"
MODELS: gigaam-multilingual-large-ctc,gigaam-multilingual-ctc
QUANTIZATION: int8
# Обработка аудио
CHUNK_SECONDS: "300"
MAX_DURATION: "3600"
# Безопасность
API_KEYS: "secret-token-1,secret-token-2"
CORS_ORIGINS: "https://asr-client.mycompany.kz"
# Сеть
HOST: "0.0.0.0"
PORT: "8000"
volumes:
- ./models:/models:ro
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
Примечания
- Все переменные читаются один раз при старте приложения. Для применения изменений необходимо перезапустить контейнер или процесс.
- Переменные
MODEL_DIR,VAD_DIRиMODELSимеют разные значения по умолчанию внутри Docker-образа (указаны вENVсекцииDockerfile) и при локальном запуске Python. - При работе с несколькими моделями убедитесь, что каждая из них скачана в соответствующую подпапку. Скрипт
download_models.pyподдерживает выбор конкретных моделей через переменнуюASR_MODELS.