- 11 записей типа goal закрыты с причиной, называющей задачи-наследники; ROADMAP.md удалён, индекс остался один — BACKLOG.md; - 33 записи переписаны: ссылка «Двигает пункты N «Завершения» цели» уступила место прямому утверждению — без целей номера пунктов вели в никуда; - шапка BACKLOG.md размечена парой <!-- стадия -->, порядок строк теперь объявлен зависимостью, а не важностью.
2.9 KiB
🔬 Потолки приёма, конвертации и заливки по длине записи
- Тип: research
- Категория: Очередь — Второй замер — остальные четыре звена.
- Зачем: Из пяти звеньев задача speechkit-limits замерила только модель распознавания: где отваливается шестичасовая запись до неё, неизвестно.
Звеньев пять, а разведка speechkit-limits меряет одно — модель
deferred-general. Остальные четыре дешевле: они не требуют боевых ключей и
считаются локально, кроме заливки.
Числа нужны раньше кода: они назначают потолок, который проверяет приём, и длину
фрагмента, на которые режет long-audio-chunking.
Вопрос
На какой длине и на каком весе записи отказывает каждое звено до распознавания —
приём из Telegram, приём по HTTP вместе с обратным прокси, конвертация ffmpeg
и заливка в Object Storage, — и сколько времени и места на диске занимает
шестичасовая запись на каждом из них.
Звено, добавленное ревью 2026-08-12: приём пишет тело записи на диск
дважды — разбор формы записывает во временный каталог всё, что не поместилось в
память, выделенную под multipart, а следом рабочая копия переливает то же
содержимое в свой файл. Верхняя
оценка на один запрос — два объявленных потолка записи (entity.MaxRecordSize,
8 ГиБ). Числа нет: самая длинная проверенная запись — 9,6 МБ.
Куда ляжет ответ
docs/research/intake-limits.md — числами и с командой замера по каждому звену.
Оттуда их берут задачи reject-oversized-recording и long-audio-chunking.
Рамки
Заливка в Object Storage оплачивается по факту — число прогонов назначает
человек, пробные файлы после замера удаляются. Прочие звенья меряются локально,
на файлах, созданных ffmpeg, а не на записях пользователей. Потолок самой
модели меряет speechkit-limits, здесь он не трогается.