2.0.0
Асинхронный контракт, SARIF-страницы, профили CPU Q4 и GPU Q8
Версия 2.0.0 закрепляет асинхронный контракт как основной способ работы и добавляет постраничный триаж SARIF. На CPU используется компактная модель и короткий промпт; для GPU — отдельный профиль с полной моделью.
- Асинхронные задачи
- Страницы SARIF
- Профили CPU и GPU
Асинхронные задачи
Принятие работы и получение вердикта разделены. Клиент сразу получает 202 и идентификатор задачи, затем коротко опрашивает статус. Синхронные POST /analyze и POST /analyze/sarif в поставке отвечают 403.
Задачи хранятся в Redis: перезапуск API не теряет очередь. Срок хранения результата — два часа.
Страницы SARIF
POST /analyze/sarif/async принимает документ SARIF 2.1.0 или обёртку с offset / limit. Одна задача — одна страница (до 20 находок). Ошибка отдельной находки не отменяет уже посчитанные вердикты страницы.
Профили CPU и GPU
На CPU поставляется модель Q4_K_M и короткий промпт — чтобы уложиться в минуты на типичной виртуальной машине. На GPU — модель Q8_0, расширенный промпт и несколько слотов, если хватает видеопамяти.
Установщик проверяет CPU, память и диск до загрузки образов и пишет профиль в .env.accent (до ребрендинга — .env.triage_llm).
Список изменений
Новое5
Асинхронные
POST /analyze/asyncиPOST /analyze/sarif/async, опросGET /jobs/{id}.Постраничный триаж SARIF 2.1.0 с прогрессом страницы.
Профили CPU
cpu4/cpu8/cpu16с компактной моделью Q4.Отдельный GPU-профиль с моделью Q8 и расширенным промптом.
Скрипт установки заказчика с проверкой хоста и async-only поставкой.
Улучшения4
Синхронные эндпоинты по умолчанию отключены: длинный инференс не держит HTTP-соединение за балансировщиком.
Очередь задач отделена от очереди слота модели; перегрузка возвращает
503иRetry-After./healthостаётся живым при нагрузке и недоступной модели; состояние вынесено во вложенные поля.Политика вердикта: по умолчанию TP, FP только если защита видна в коде.
Исправления2
Ошибка одной находки на странице SARIF больше не роняет всю страницу.
На CPU выключен языковой повторный запрос, который удваивал время на слабом хосте.
